一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python map和reduce函數用法示例

Python map和reduce函數用法示例

2019-11-21 14:33Python教程網 Python

這篇文章主要介紹了Python map和reduce函數用法示例,本文給出了兩個函數的多個用法示例,需要的朋友可以參考下

先看map。map()函數接收兩個參數,一個是函數,一個是序列,map將傳入的函數依次作用到序列的每個元素,并把結果作為新的list返回。

舉例說明,比如我們有一個函數a(x)=x*2,要把這個函數作用在一個list [1, 2, 3, 4, 5]上,就可以用map()實現如下:

復制代碼代碼如下:

>>> def a(x):
...     return x * 2
... 
>>> map(a, [1,2,3,4,5]) 
[2, 4, 6, 8, 10]

 

map傳入的第一個參數a,即a函數,當然你也可以不用map函數實現這功能:

 

復制代碼代碼如下:

>>> list = []
>>> for i in [1, 2, 3, 4, 5]:
...     list.append(a(i))
... 
>>> print list
[2, 4, 6, 8, 10]

 

從代碼量上來講,map要精簡很多,所以,map()作為高階函數,事實上它把運算規(guī)則抽象了,因此,我們不但可以計算簡單的a(x)=x*2,還可以計算任意復雜的函數,比如,把這個list所有數字轉為字符串:

 

復制代碼代碼如下:

>>> map(str,[1,2,3,4,5])
['1', '2', '3', '4', '5']
>>>

 

只需要一行代碼,就搞定了。讓我們再看和來自顧雪峰python教程的習題:利用map()函數,把用戶輸入的不規(guī)范的英文名字,變?yōu)槭鬃帜复髮懀渌懙囊?guī)范名字。輸入:[‘adam', ‘LISA', ‘barT'],輸出:[‘Adam', ‘Lisa', ‘Bart']。作為我個人來說,我可能會先將不規(guī)范的英文名全轉換在小寫然后再通過capitalize()函數,將首字母轉換在寫,代碼如下:

 

復制代碼代碼如下:

>>> def caps(name):
...     return name.capitalize()
... 
>>> def lowers(name):
...     return name.lower()
... 
>>> map(caps, map(lowers,['adam', 'LISA', 'barT']))
['Adam', 'Lisa', 'Bart']

 

再看reduce的用法。reduce(function, sequence, starting_value):對sequence中的item順序迭代調用function,如果有starting_value,還可以作為初始值調用,例如可以用來對List求和:

 

復制代碼代碼如下:

>>> def add(x, y):
...     return x + y
... 
>>> reduce(add, [1, 3, 5, 7, 9])
25
>>> reduce(add, range(1, 11))
55
>>> reduce(add, range(1, 11),20)
75

 

當然求和運算可以直接用Python內建函數sum(),沒必要動用reduce。但是如果要把序列[1,2,3,4,5,6,7]變換成整數1234567,reduce就可以派上用場:

 

復制代碼代碼如下:

>>> def fn(x, y):
...     return x * 10 + y
... 
>>> reduce(fn, [1,3,4,5,6,7])
134567

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美精品色精品一区二区三区 | 91在线视频免费观看 | 国产精品久久久精品日日 | 欧美日韩国产一区二区三区不卡 | 逼逼爱| 日本特黄一级午夜剧场毛片 | 粗了大了 整进去好爽视频 刺激一区仑乱 | 好大用力深一点女公交车 | 国产高清自拍 | 欧美一区二区三区精品 | 99热在线这里只有精品 | 国产一级特黄aa大片免费 | 国内视频一区二区三区 | 国内会所按摩推拿国产 | 九九热在线视频 | 青青青手机视频在线观看 | 我的家教老师在线观看 | 亚洲男人天堂av | 福利视频一区二区牛牛 | xxxx意大利xxxxhd | aaaaa特级毛片 | 日韩欧美一区二区三区免费观看 | 欧美一级片在线视频 | 欧美free激情野战hd | 91视频99| 含羞草国产亚洲精品岁国产精品 | 香蕉91视频| 91最新高端约会系列178 | 放荡的女老板bd中文字幕 | 免费yjsp妖精com | 亚洲玖玖 | 91精品国产91热久久久久福利 | 亚洲 欧美 日本 国产 高清 | 亚洲国产成人精品无码区5566 | 4438成人网 | 爱爱一级视频 | 99ri在线视频网 | 欧美亚洲国产一区二区三区 | 日韩大片在线 | 亚洲入口| 国产毛片在线观看 |