map函數用法詳解


map函數是Python內置的高階函數,它是一個典型的函數式編程例子。
它的參數為: 一個函數function、一個或多個sequence。
通過把函數function依次作用在sequence的每個元素上,得到一個新的sequence並返回。
注意:map函數不改變原有的sequence,而是返回一個新的sequence。

以列表為例說明:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9,10]
希望得到lst中每個元素的平方,這時我們就可以用到map函數。

#Python版本: 3.3.4
#1.常規方法
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9,10]
>>> def square(x):
return x**2

>>> list(map(square,lst))     #Python2.x使用map(square,lst)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

#2.使用lambda函數
>>> list(map(lambda x:x**2,lst))     #Python2.x使用map(lambda x:x**2,lst)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

>>> [(lambda x:x**2)(x) for x in lst]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

#map函數除了作用於數字列表外,還可以作用於字符串和元組。
#例如:
>>> list(map(ord,'abcdef'))
[97, 98, 99, 100, 101, 102]

#當傳入多個可迭代對象時,且它們元素長度不一致時,生成的迭代器只到最短長度
>>> list(map(lambda x,y:x+y,'abc','de')) 
['ad', 'be']

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM