map(function,sequence)
把sequence中的值當參數逐個傳給function,返回一個包含函數執行結果的list。
重點是結果返回一個列表,這樣對返回的列表就能夠幹不少的活了。如().join()操做
若是function有兩個參數,即map(function,sequence1,sequence2)。
例子:
求1+1,2+2,3+3,4+4
map(lambda x:x+x,range(1,5))
返回值是[2,4,6,8]
reduce(function,sequence)
function接收的參數個數只能爲2
先把sequence中第一個值和第二個值當參數傳給function,再把function的返回值和第三個值當參數傳給
function,而後只返回一個結果。
重點就是通過reduce處理完之後,就只會獲得一個結果。
例子:
求1到10的累加
reduce(lambda x,y:x+y,range(1,11))
返回值是55。
filter(function,sequence)
function的返回值只能是True或False
把sequence中的值逐個當參數傳給function,若是function(x)的返回值是True,就把x加到filter的返回值裏面。通常來講filter的返回值是list,特殊狀況如sequence是string或tuple,則返回值按照sequence的類型。
重點就是經過filter函數來達到過濾的效果
例子:
找出1到10之間的奇數
filter(lambda x:x%2!=0,range(1,11))
返回值
[1,3,5,7,9]
還有就是lamdba天生跟它們混的比較熟。經過lamdba來產生一個匿名的函數,對後面的
sequence來幹活