內置函數二
阿新 • • 發佈:2018-01-05
encoding 存儲 tuple () 網絡編程 n) ict 正常的 數據集
1)基礎數據類型相關
和數據結構相關
序列:
1.列表和元組
列表:list
元組:tuple
2.相關內置函數
reversed:reversed() l = [1,2,3,4,5] l.reverse() print(l) l = [1,2,3,4,5] l2 = reversed(l) print(l2) 保留原列表,返回一個反向的叠代器
slice:
l = (1,2,23,213,5612,342,43) sli = slice(1,5,2) print(l[sli]) print(l[1:5:2])
3.字符串
str:
數字類型
format:
print(format(‘test‘, ‘<20‘)) print(format(‘test‘, ‘>40‘)) print(format(‘test‘, ‘^40‘))
bytes:
bytes 轉換成bytes類型 我拿到的是gbk編碼的,我想轉成utf-8編碼 print(bytes(‘你好‘,encoding=‘GBK‘)) # unicode轉換成GBK的bytes print(bytes(‘你好‘,encoding=‘utf-8‘)) # unicode轉換成utf-8的bytes
bytearry:
網絡編程 只能傳二進制 照片和視頻也是以二進制存儲 html網頁爬取到的也是編碼 b_array= bytearray(‘你好‘,encoding=‘utf-8‘) print(b_array) print(b_array[0]) ‘\xe4\xbd\xa0\xe5\xa5\xbd‘ s1 = ‘alexa‘ s2 = ‘alexb‘
memoryview:
ord:
字符按照unicode轉數字
print(ord(‘好‘)) print(ord(‘1‘)) 結果:22909 49
chr:
數字按照unicode轉字符
print(chr(97)) 結果:a
ascii:
只要是ascii碼中的內容,就打印出來,不是就轉換成\u
print(ascii(‘好‘)) print(ascii(‘1‘)) 結果:a ‘\u597d‘ ‘1‘
repr:
用於%r格式化輸出
name = ‘egg‘ print(‘你好%r‘%name) print(repr(‘1‘)) print(repr(1))
數據集合
1.字典:
dict
2.集合:
set:無序排序且不重復,是可變的。
frozenset:是凍結的集合,他是不可變的,存在哈希值。
相關內置函數
len:長度
sorted:排序,可以定義。
列表按照其中每一個值的絕對值排序 l1 = [1,3,5,-2,-4,-6] l2 = sorted(l1,key=abs) print(l1) print(l2) 列表按照每一個元素的len排序 l = [[1,2],[3,4,5,6],(7,),‘123‘] print(sorted(l,key=len))
enumerate:枚舉
all:只要有一個空的就返回False,全部不為空就返回True。
print(all([‘a‘,‘‘,123])) print(all([‘a‘,123])) print(all([0,123])) 結果:False True False
any:只要有一個為真就返回True。
print(any([‘‘,True,0,[]])) 結果:True
zip:拉鏈函數
l = [1,2,3,4,5] l2 = [‘a‘,‘b‘,‘c‘,‘d‘] l3 = (‘*‘,‘**‘,[1,2]) d = {‘k1‘:1,‘k2‘:2} for i in zip(l,l2,l3,d): print(i)
filter:
執行了filter之後的結果集合 <= 執行之前的個數
filter只管篩選,不會改變原來的值
map:
執行前後元素個數不變
值可能發生改變
二、匿名函數
匿名函數:為了解決那些功能很簡單的需求而設計的一句話函數
#這段代碼 def calc(n): return n**n print(calc(10)) #換成匿名函數 calc = lambda n:n**n print(calc(10))
函數名 = lambda 參數 :返回值 #參數可以有多個,用逗號隔開 #匿名函數不管邏輯多復雜,只能寫一行,且邏輯執行結束後的內容就是返回值 #返回值和正常的函數一樣可以是任意數據類型
註:max min sorted filter map 只有這五個函數才能使用匿名函數。
內置函數二