1. 程式人生 > 其它 >內建函式filter、map、zip、lambda、partial

內建函式filter、map、zip、lambda、partial

(1)filter:過濾函式,根據函式過濾列表

方法一:輸出:[1, 3, 5, 3, 7]

def fun(n):
return n < 10


li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
res = filter(fun, li)
print(list(res))

 

方法二:輸出:[1, 3, 5, 3, 7]

li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
res = filter(lambda x:x<10, li)
print(list(res))

方法三:輸出:[1, 3, 5, 3, 7]

from functools import partial
def fun(n):
return n < 10


li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
filter2 = partial(filter, fun)
print(list(filter2(li)))

(2)map:根據函式,挨個計算列表元素

方法一:[42, 68, 2, 6, 68, 10, 6, 14, 20]

def fun1(n):
return n * 2


li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
res = map(fun1, li)
print(list(res))

方法二:

li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
res = map(lambda x:x*2, li)
print(list(res))

方法三:[42, 68, 2, 6, 68, 10, 6, 14, 20]

from functools import partial

filter2 = partial(map, fun1)
print(list(filter2(li)))

(3)zip:打包,將多個列表,大打包成分組元祖

res = zip([1, 2, 3], [6, 7, 8])
# print(list(res)) # 輸出:[(1, 6), (2, 7), (3, 8)]
print(dict(list(res))) #輸出:{1: 6, 2: 7, 3: 8}

(4)lambda:匿名函式

print((lambda x: x * 3)(10))
print([(lambda x: x * 3)(i) for i in range(10)])
print(list(filter(lambda x: x < 5, [i for i in range(10)])))