前幾天看過這幾個函數(shù)的用法,但因為幾乎不用所以忘記了,今天再次看到,就總結(jié)一下了,其實還是很有用的
lambda
匿名函數(shù),用法如下
lambda [arg1[,arg2,arg3,...,argn]] : expression
example:
add =lambda x, y : x + y
add(3, 4)
# 輸出 7
filter
filter(bool_func,seq):此函數(shù)的功能相當于過濾器。調(diào)用一個布爾函數(shù)bool_func來迭代遍歷每個seq中的元素;返回一個使bool_seq返回值為true的元素的序列。
example:
filter(lambda x: x & 1, [1,2,3,4,5])
# 輸出 [1, 3, 5]
map
map(func,seq1[,seq2...]):將函數(shù)func作用于給定序列的每個元素,并用一個列表來提供返回值;如果func為None,func表現(xiàn)為身份函數(shù),返回一個含有每個序列中元素集合的n個元組的列表。
example:
map(lambda x : x * 2,[1,2,3,4])
# [2, 4, 6, 8]
map(lambda x : x * 2,[1,2,3,4,[5,6,7]])
# [2, 4, 6, 8, [5, 6, 7, 5, 6, 7]]
Reduce
reduce(func,seq[,init]):func為二元函數(shù),將func作用于seq序列的元素,每次攜帶一對(先前的結(jié)果以及下一個序列的元素),連續(xù)的將現(xiàn)有的結(jié)果和下一個值作用在獲得的隨后的結(jié)果上,最后減少我們的序列為一個單一的返回值:如果初始值init給定,第一個比較會是init和第一個序列元素而不是序列的頭兩個元素。
example:
reduce(lambda x,y : x + y,[1,2,3,4])
10
reduce(lambda x,y : x + y,[1,2,3,4],10)
20