標籤:pytho lte init lam list rom lambda iter port
filter和map和reduce
map(function,iterable...) -> list
映射,對列表中的每個值操作 返回操作後的數值組成列表
# 給列表值+1l = [1,2,3,4,5,6,7,8,9,10]print(list(map(lambda x:x+1,l))) # [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
filter(function,iterable...) -> list, tuple, or string
過濾,對列表中的每個值進行判斷 返回合格原列表值
# 篩選偶數l = [1,2,3,4,5,6,7,8,9,10]print(list(filter(lambda x:x%2==0,l))) # [2, 4, 6, 8, 10]# 補充# 若用map執行判斷語句,返回的是True或者False。map將判斷語句的結果視為需求的值,而filter會將符合判斷語句的原列表成員視為需求的值print(list(map(lambda x:x%2==0,l))) # [False, True, False, True, False, True, False, True, False, True]
reduce(function, sequence[, initial]) -> value
對sequence中的item順序迭代調用function,函數必須要有2個參數。要是有第3個參數,則表示初始值,可以繼續調用初始值,返回一個值。
依次執行,第一次取兩個可迭代對象的值,交給function操作,將結果與下一個可迭代對象的值再交給function操作,直至結束
from functools import reduceprint(reduce(lambda x,y:x+y,l,0)) # 55 相當於1+2+3+...+10
Python【filter、map、reduce】