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 |
|