python中重要的內置函數
阿新 • • 發佈:2018-08-06
tip 最大的 key pan 轉變 class strip() val map
all判斷是否有bool值為False
1 print(all([‘a‘,‘‘,123])) 2 #False
#any判斷是否有bool值為True
1 print(any([‘a‘,‘‘,‘‘])) 2 # True
zip,拉鏈,不止拉兩個,可以拉多個
1 l1 = [1,2,3,‘ef‘,‘rf‘,6] 2 l2 = [‘ew‘,‘d‘,4] 3 l3 = [‘fsd‘,23,43,43,23] 4 print(zip(l1,l2,l3)) 5 for i in zip(l1,l2,l3): 6 print(i) 7 # <zip object at 0x05846738>8 # (1, ‘ew‘, ‘fsd‘) 9 # (2, ‘d‘, 23) 10 # (3, 4, 43)
filter函數
篩選數字
1 def is_odd(x): 2 return x % 2 == 1 3 4 ret = filter(is_odd, [1,2,3,4,5,6]) #註意這裏僅僅用函數的名字 5 print(ret) 6 for i in ret: 7 print(i) 8 # <filter object at 0x057D5270> 9 # 1 10 # 3 11 # 5
篩選字符串
1 def is_str(x):2 return type(x) == str 3 4 ret = filter(is_str, [123,‘23dwedc‘,‘rewqrrr1‘,12341]) 5 for i in ret: 6 print(i) 7 # 23dwedc 8 # rewqrrr1
篩選去除空的
1 def is_none(s): 2 return s and str(s).strip() 3 ret = filter(is_none,[31,‘asdf‘,‘sdfsad‘,‘‘,‘ ‘,[],234]) 4 for i in ret: 5 print(i) 6 #31 7 # asdf 8 # sdfsad 9 # 234
過濾1-100中平方根是整數的數
1 import math 2 def is_int(x): 3 return math.sqrt(x) % 1 == 0 4 5 ret = filter(is_int,range(1,101)) 6 for i in ret: 7 print(i) 8 9 # 1 10 # 4 11 # 9 12 # 16 13 # 25 14 # 36 15 # 49 16 # 64 17 # 81 18 # 100
map函數
1 ret = map(abs,[1,-4,6,-8]) 2 for i in ret: 3 print(i) 4 # 1 5 # 4 6 # 6 7 # 8
sorted:在列表不大和想保留原來的數據順序的時候用
1 l = [1, -4, 6, 5, -10] 2 l.sort() 3 print(l) 4 # [-10, -4, 1, 5, 6] 5 6 7 l = [1, -4, 6, 5, -10] 8 l.sort(key = abs) 9 print(l) 10 # [1, -4, 5, 6, -10] 11 12 l = [1, -4, 6, 5, -10] 13 print(sorted(l)) #sorted(l,key = abs,reverse=True) 14 print(l) 15 # [-10, -4, 1, 5, 6] 16 # [1, -4, 6, 5, -10] 17 18 #根據列表內的元素長度來排序 19 l = [‘ ‘, [1,2], ‘hello world‘] 20 new_l = sorted(l,key=len) #可以給一些函數 21 print(new_l) 22 # [[1, 2], ‘ ‘, ‘hello world‘]
匿名函數
1 def add(x,y): 2 return x + y 3 4 # 變為匿名函數 5 func = lambda x,y:x+y 6 print(func(44,22)) 7 # 66
篩選字典裏面值最大的value對應的key
1 dic = {‘key1‘:2, ‘key2‘:3, ‘key3‘:6} 2 def func(key): 3 return dic[key] 4 5 print(max(dic,key=func)) 6 # key3 7 8 dic = {‘key1‘:2, ‘key2‘:3, ‘key3‘:6} 9 print(max(dic,key=lambda k:dic[k])) 10 # key3
帶有key的內置函數:min max filter map sorted 都可已和lambda合用
面試題1:用lambda將((‘a‘), (‘b‘))((‘c‘), (‘d‘))轉變成[{‘a‘:‘c‘},{‘b‘:‘d‘}]
1 ret = zip(((‘a‘), (‘b‘)),((‘c‘), (‘d‘))) 2 print(list(map(lambda tup:{tup[0]:tup[1]},ret))) 3 4 # [{‘a‘: ‘c‘}, {‘b‘: ‘d‘}]
面試題2:給出答案並解釋
1 def multipliers(): 2 return [lambda x:i*x for i in range(4)] 3 print([m(2) for m in multipliers()]) 4 5 # [6, 6, 6, 6]
python中重要的內置函數