python基礎 python內建函式map/reduce/filter

pythontab發表於2013-02-17

python有幾個內建的函式很有意思:map/filter/reduce,都是對一個集合進行處理,filter很容易理解用於過濾,map用於對映,reduce用於歸併. 是python列表方法的三架馬車。

filter() 函式:

filter 函式的功能相當於過濾器。呼叫一個布林函式bool_func來迭代遍歷每個seq中的元素;返回一個使bool_seq返回值為true的元素的序列。

>>>a=[1,2,3,4,5,6,7]
>>>b=filter(lambda x:x>5, a)
>>>print b
>>>[6,7]
如果filter引數值為None,就使用identity()函式,list引數中所有為假的元素都將被刪除。如下所示:
>>>a=[0,1,2,3,4,5,6,7]
>>>b=filter(None, a)
>>>print b
>>>[1,2,3,4,5,6,7]

map() 函式

map函式func作用於給定序列的每個元素,並用一個列表來提供返回值。

>>>map(lambda x:x+3, a) #這裡的a同上
>>>[3,4,5,6,7,8,9,10]
 
#另一個例子
>>>a=[1,2,3]
>>>b=[4,5,6]
>>>map(lambda x,y:x+y, a,b)
>>>[5,7,9]

reduce() 函式:

reduce函式,func為二元函式,將func作用於seq序列的元素,每次攜帶一對(先前的結果以及下一個序列的元素),連續的將現有的結果和下一個值作用在獲得的隨後的結果上,最後減少我們的序列為一個單一的返回值。

>>>a = [1,2,3,4,5]
>>>reduce(lambda x,y:x+y,a)
15



相關文章