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

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

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

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


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

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

2. map函數(shù)func作用于給定序列的每個(gè)元素,并用一個(gè)列表來(lái)提供返回值。

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

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

例1:用map和reduce實(shí)現(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é)果變成一個(gè)階乘列表

>>>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ù)過(guò)濾出來(lái)
質(zhì)數(shù)又稱素?cái)?shù)。指在一個(gè)大于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)文章

最新評(píng)論

定结县| 东乡| 新民市| 遵义县| 甘南县| 霍山县| 湖口县| 三门县| 武夷山市| 东兴市| 茶陵县| 嘉祥县| 虹口区| 突泉县| 肃南| 资阳市| 南宁市| 忻城县| 福鼎市| 巨鹿县| 岑巩县| 中方县| 安新县| 奉节县| 黑龙江省| 富民县| 友谊县| 中方县| 阿勒泰市| 绥德县| 重庆市| 洪泽县| 河池市| 同德县| 正阳县| 湾仔区| 汉寿县| 黄骅市| 依安县| 太康县| 长沙市|