>>N=range(10)>>>printfilter(lambdax:x>5,N)[" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python內置函數之filter map reduce介紹

系統 1750 0

Python內置了一些非常有趣、有用的函數,如:filter、map、reduce,都是對一個集合進行處理,filter很容易理解用于過濾,map用于映射,reduce用于歸并. 是Python列表方法的三架馬車。


1. filter函數 的功能相當于過濾器。調用一個布爾函數bool_func來迭代遍歷每個seq中的元素;返回一個使bool_seq返回值為true的元素的序列。

          
>>> N=range(10)
>>> print filter(lambda x:x>5,N)
[6, 7, 8, 9]
        

2. map函數 func作用于給定序列的每個元素,并用一個列表來提供返回值。

          
>>> N1=[1,2,3]
>>> N2=[6,5,4]
>>> map(lambda x,y:x+y,N1,N2)
[7, 7, 7]
>>> map(lambda x:x+3,N1)
[4, 5, 6]
        

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

          
>>> N=range(1,101)
>>> reduce(lambda x,y:x+y,N)
5050
        

例1:用map和reduce實現5的階乘相加(5!+4!+3!+2!+1!)

          
>>>print reduce(lambda x,y:x*y,range(1,6))
>>>print reduce(lambda x,y:x*y,range(1,5))
>>>print reduce(lambda x,y:x*y,range(1,4))
>>>print reduce(lambda x,y:x*y,range(1,3))
>>>print reduce(lambda x,y:x*y,range(1,2))
'''
        

結果為

          
120
24
6
2
1
'''
        

#把上一步的結果變成一個階乘列表

          
>>>print map(lambda a:reduce(lambda x,y:x*y,range(1,a+1)),range(1,6))
[1, 2, 6, 24, 120]
        

#最后把階乘列表相加,第一題解決

          
>>>print reduce(lambda m,n:m+n,map(lambda a:reduce(lambda x,y:x*y,range(1,a+1)),range(1,6)))
153
        

例2:用filter將100~200以內的質數過濾出來
質數又稱素數。指在一個大于1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數

          
>>>filter(lambda N:len(filter(lambda M:N%M==0,range(2,int(N**0.5)+1)))==0,range(100,201))
        

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 博野县| 柘城县| 锡林郭勒盟| 哈巴河县| 赫章县| 明水县| 杭锦后旗| 秦皇岛市| 垫江县| 肥城市| 晋城| 海原县| 揭西县| 临澧县| 明星| 祁门县| 济源市| 宁明县| 德惠市| 洛阳市| 阳城县| 平山县| 南京市| 当涂县| 蒙城县| 乌兰浩特市| 博客| 尼木县| 渝中区| 雅安市| 安阳市| 青浦区| 丹凤县| 永胜县| 临沂市| 深泽县| 日照市| 会理县| 金山区| 宣恩县| 内丘县|