您好,登錄后才能下訂單哦!
小編給大家分享一下python中map指的是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
python中map是什么意思?
map函數的原型是map(function, iterable, …),它的返回結果是一個列表。
參數function傳的是一個函數名,可以是python內置的,也可以是自定義的。
參數iterable傳的是一個可以迭代的對象,例如列表,元組,字符串這樣的。
這個函數的意思就是將function應用于iterable的每一個元素,結果以列表的形式返回。注意到沒有,iterable后面還有省略號,意思就是可以傳很多個iterable,如果有額外的iterable參數,并行的從這些參數中取元素,并調用function。如果一個iterable參數比另外的iterable參數要短,將以None擴展該參數元素。還是看例子來理解吧!
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的內置函數,這個例子是把列表/元組/字符串的每個元素變成了str類型,然后以列表的形式返回。當然我們也可以傳入自定義的函數,看下面的例子。
def mul(x): return x*x n=[1,2,3,4,5] res=map(mul,n)
輸出:[1, 4, 9, 16, 25]
把列表n中的每個元素運行一次mul函數后得到的結果作為最終結果列表的元素。再看下有多個iterable參數的情況。
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]
并行的從三個列表中各自取出元素然后運行add函數,有人可能會問,如果三個列表長度不一樣怎么辦,前面已經說了,對于短的那個iterable參數會用None填補。對于上面的例子,如果list3=[1,2]的話,那么這個程序會報錯,因為雖然在運行add函數的時候列表list3的最后一個元素會用None填補,但是None和int類型的數是不能相加的。也就是說,除非參數function支持None的運算,否則根本沒意義。現在我們看下另一個例子你就明白了
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指的是什么意思的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。