1. 程式人生 > >python中重要的內置函數

python中重要的內置函數

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中重要的內置函數