日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

python的映射_Python学习:映射函数(map)和函数式编程工具(filter和reduce)

發(fā)布時(shí)間:2024/4/11 111 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的映射_Python学习:映射函数(map)和函数式编程工具(filter和reduce) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在序列中映射函數(shù)map

map函數(shù)會(huì)對(duì)一個(gè)序列對(duì)象中的每一個(gè)元素應(yīng)用被傳入的函數(shù),并且返回一個(gè)包含了所有函數(shù)調(diào)用結(jié)果的一個(gè)列表。

例1:def?sum(x):

return?x?+?10

L1?=?[1,2,3,4,5,6,7]

L?=?map(sum,?L1)

#結(jié)果為[11,?12,?13,?14,?15,?16,?17]

map還有更高級(jí)的使用方法,例如提供了序列作為參數(shù),它能夠并行返回分別以每個(gè)序列中的元素作為函數(shù)對(duì)應(yīng)參數(shù)得到的結(jié)果的列表。如例2所示。

例2:def?sum(x,?y):

return?x?+?y

L1?=?[1,2,3,4,5,6]

L2?=?[10,11,12,13,14,15]

print?map(sum,?L1,?L2)

#結(jié)果為[11,?13,?15,?17,?19,?21]

注意:map調(diào)用與列表解析很相似,但是map對(duì)每一個(gè)元素都應(yīng)用了函數(shù)調(diào)用而不是任意的表達(dá)式。因?yàn)檫@點(diǎn)閑置,從某種意義上來(lái)說(shuō),它成為了一個(gè)不太通用的工具,盡管如此,在某些情況下,目前map比列表解析運(yùn)行起來(lái)更快。它也比f(wàn)or循環(huán)更快。

函數(shù)式編程工具(filter和reduce)

map函數(shù)是Python用來(lái)進(jìn)行函數(shù)式編程的這類工具中最簡(jiǎn)單的內(nèi)置函數(shù)代表:函數(shù)式編程的意思就是對(duì)應(yīng)序列應(yīng)用一些函數(shù)的工具。例如,基于某一側(cè)式函數(shù)過(guò)濾出一些元素(filter),以及對(duì)每對(duì)元素都應(yīng)用函數(shù)并運(yùn)行到最后結(jié)果(reduce)。由于range和filter都返回可迭代對(duì)象,在Python3.0中,它們需要list調(diào)用來(lái)顯示其所有結(jié)果。

序列中的元素若其返回值為真的話,將會(huì)被鍵入到結(jié)果的列表中。就像map,這個(gè)函數(shù)能夠用for 循環(huán)來(lái)等效,但是它是內(nèi)置的,運(yùn)行起來(lái)比較快。L?=?range(-10,10)

print?filter(lambda?x:x>4,?L)

#結(jié)果為[5,?6,?7,?8,?9]

序列中的元素若其返回值為真的話,將會(huì)被鍵入到結(jié)果的列表中。就像map,這個(gè)函數(shù)能夠用for 循環(huán)來(lái)等效,但是它是內(nèi)置的,運(yùn)行起來(lái)比較快。res?=?[]

for?x?in?range(-10,10):

if?x?>5:

res.append(x)

print(res)

#結(jié)果為[5,?6,?7,?8,?9]

reduce在Python2.6中只是一個(gè)簡(jiǎn)單的內(nèi)置函數(shù),但是在Python3.0中則位于functools模塊中,要更復(fù)雜一些。>>>reduce((lambda?x,y:?x+y),?[1,2,3,4,5])

15

>>>reduce((lambda?x,y:?x*y),?[1,2,3,4,5])

120

總結(jié)

以上是生活随笔為你收集整理的python的映射_Python学习:映射函数(map)和函数式编程工具(filter和reduce)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。