python有幾個內(nèi)置的函數(shù)很有意思:map/filter/reduce,都是對一個集合進(jìn)行處理,filter很容易理解用于過濾,map用于映射,reduce用于歸并. 是python列表方法的三架馬車。
* filter() 函數(shù):
filter 函數(shù)的功能相當(dāng)于過濾器。調(diào)用一個布爾函數(shù)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參數(shù)值為None,就使用identity()函數(shù),list參數(shù)中所有為假的元素都將被刪除。如下所示:
>>>a=[0,1,2,3,4,5,6,7]
>>>b=filter(None, a)
>>>print b
>>>[1,2,3,4,5,6,7]
* map() 函數(shù):
map函數(shù)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() 函數(shù):
reduce函數(shù),func為二元函數(shù),將func作用于seq序列的元素,每次攜帶一對(先前的結(jié)果以及下一個序列的元素),連續(xù)的將現(xiàn)有的結(jié)果和下一個值作用在獲得的隨后的結(jié)果上,最后減少我們的序列為一個單一的返回值。
>>>a = [1,2,3,4,5]
>>>reduce(lambda x,y:x+y,a)
15
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。