最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python內(nèi)置函數(shù)之filter map reduce介紹

 更新時間:2014年11月30日 21:53:58   投稿:mdxy-dxy  
Python內(nèi)置了一些非常有趣、有用的函數(shù),如:filter、map、reduce,都是對一個集合進行處理,filter很容易理解用于過濾,map用于映射,reduce用于歸并. 是Python列表方法的三架馬車

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


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

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

2. map函數(shù)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函數(shù),func為二元函數(shù),將func作用于seq序列的元素,每次攜帶一對(先前的結(jié)果以及下一個序列的元素),連續(xù)的將現(xiàn)有的結(jié)果和下一個值作用在獲得的隨后的結(jié)果上,最后減少我們的序列為一個單一的返回值。

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

例1:用map和reduce實現(xiàn)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))
'''

結(jié)果為

120
24
6
2
1
'''

#把上一步的結(jié)果變成一個階乘列表

>>>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以內(nèi)的質(zhì)數(shù)過濾出來
質(zhì)數(shù)又稱素數(shù)。指在一個大于1的自然數(shù)中,除了1和此整數(shù)自身外,不能被其他自然數(shù)整除的數(shù)

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

相關(guān)文章

最新評論

久治县| 红桥区| 崇明县| 西丰县| 两当县| 福州市| 江川县| 威宁| 元江| 黄陵县| 汽车| 郧西县| 望奎县| 桐乡市| 开化县| 巩留县| 藁城市| 舞阳县| 邯郸县| 界首市| 平果县| 阿坝| 句容市| 文山县| 平武县| 上林县| 泗洪县| 新巴尔虎左旗| 北辰区| 杭锦旗| 左云县| 稷山县| 界首市| 同仁县| 广宁县| 上林县| 惠来县| 兴化市| 华容县| 门头沟区| 乌什县|