內建函式filter、map、zip、lambda、partial
阿新 • • 發佈:2022-04-22
(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)])))