Python内建函数之——filter,map,reduce
原文鏈接:http://blog.csdn.net/prince2270/article/details/4681299
在講述filter,map和reduce之前,首先介紹一下匿名函數lambda。
???? lambda的使用方法如下:lambda [arg1[,arg2,arg3,...,argn]] : expression
?????例如:
>>>?add?=?lambda?x,y?:?x?+?y?? >>>?add(1,2)?? 3?接下來分別介紹filter,map和reduce。
1、filter(bool_func,seq):此函數的功能相當于過濾器。調用一個布爾函數bool_func來迭代遍歷每個seq中的元素;返回一個使bool_seq返回值為true的元素的序列。
???? 例如:
? ? ?
>>>?filter(lambda?x?:?x%2?==?0,[1,2,3,4,5])?? [2,?4]???? filter內建函數的python實現:
????
2、map(func,seq1[,seq2...]):將函數func作用于給定序列的每個元素,并用一個列表來提供返回值;如果func為None,func表現為身份函數,返回一個含有每個序列中元素集合的n個元組的列表。
????例如:
????
???? map內建函數的python實現:
? ? ?
>>>?def?map(func,seq):??mapped_seq?=?[]??for?eachItem?in?seq:??mapped_seq.append(func(eachItem))??return?mapped_seq3、reduce(func,seq[,init]):func為二元函數,將func作用于seq序列的元素,每次攜帶一對(先前的結果以及下一個序列的元素),連續的將現有的結果和下一個值作用在獲得的隨后的結果上,最后減少我們的序列為一個單一的返回值:如果初始值init給定,第一個比較會是init和第一個序列元素而不是序列的頭兩個元素。
???? 例如:
????
???? reduce的python實現:
????
>>>?def?reduce(bin_func,seq,initial=None):??lseq?=?list(seq)??if?initial?is?None:??res?=?lseq.pop(0)??else:??res?=?initial??for?eachItem?in?lseq:??res?=?bin_func(res,eachItem)??return?res轉載于:https://blog.51cto.com/wzh916/1430919
總結
以上是生活随笔為你收集整理的Python内建函数之——filter,map,reduce的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV学习(1) OpenCV的安
- 下一篇: jdk 日志框架-