小編給大家分享一下python中map指的是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
python中map是什么意思?
map函數(shù)的原型是map(function, iterable, …),它的返回結(jié)果是一個(gè)列表。
參數(shù)function傳的是一個(gè)函數(shù)名,可以是python內(nèi)置的,也可以是自定義的。
參數(shù)iterable傳的是一個(gè)可以迭代的對(duì)象,例如列表,元組,字符串這樣的。
這個(gè)函數(shù)的意思就是將function應(yīng)用于iterable的每一個(gè)元素,結(jié)果以列表的形式返回。注意到?jīng)]有,iterable后面還有省略號(hào),意思就是可以傳很多個(gè)iterable,如果有額外的iterable參數(shù),并行的從這些參數(shù)中取元素,并調(diào)用function。如果一個(gè)iterable參數(shù)比另外的iterable參數(shù)要短,將以None擴(kuò)展該參數(shù)元素。還是看例子來(lái)理解吧!
a=(1,2,3,4,5) b=[1,2,3,4,5] c="zhangkang" la=map(str,a) lb=map(str,b) lc=map(str,c) print(la) print(lb) print(lc)
輸出:
['1', '2', '3', '4', '5'] ['1', '2', '3', '4', '5'] ['z', 'h', 'a', 'n', 'g', 'k', 'a', 'n', 'g']
str()是python的內(nèi)置函數(shù),這個(gè)例子是把列表/元組/字符串的每個(gè)元素變成了str類(lèi)型,然后以列表的形式返回。當(dāng)然我們也可以傳入自定義的函數(shù),看下面的例子。
def mul(x): return x*x n=[1,2,3,4,5] res=map(mul,n)
輸出:[1, 4, 9, 16, 25]
把列表n中的每個(gè)元素運(yùn)行一次mul函數(shù)后得到的結(jié)果作為最終結(jié)果列表的元素。再看下有多個(gè)iterable參數(shù)的情況。
def add(x,y,z): return x+y+z list1=[1,2,3] list2=[1,2,3] list3=[1,2,3] res=map(add,list1,list2,list3) print(res)
輸出:[3, 6, 9]
并行的從三個(gè)列表中各自取出元素然后運(yùn)行add函數(shù),有人可能會(huì)問(wèn),如果三個(gè)列表長(zhǎng)度不一樣怎么辦,前面已經(jīng)說(shuō)了,對(duì)于短的那個(gè)iterable參數(shù)會(huì)用None填補(bǔ)。對(duì)于上面的例子,如果list3=[1,2]的話,那么這個(gè)程序會(huì)報(bào)錯(cuò),因?yàn)殡m然在運(yùn)行add函數(shù)的時(shí)候列表list3的最后一個(gè)元素會(huì)用None填補(bǔ),但是None和int類(lèi)型的數(shù)是不能相加的。也就是說(shuō),除非參數(shù)function支持None的運(yùn)算,否則根本沒(méi)意義。現(xiàn)在我們看下另一個(gè)例子你就明白了
def add(x,y,z): return x,y,z list1 = [1,2,3] list2 = [1,2,3,4] list3 = [1,2,3,4,5] res = map(add, list1, list2, list3) print(res)
輸出:
[(1, 1, 1), (2, 2, 2), (3, 3, 3), (None, 4, 4), (None, None, 5)]
以上是python中map指的是什么意思的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前題目:python中map指的是什么意思-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://www.2m8n56k.cn/article42/dhsdec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容