Python Map 函數(shù)的使用
map()是一個(gè) Python 內(nèi)建函數(shù),它允許你不需要使用循環(huán)就可以編寫簡潔的代碼。
一、Python map() 函數(shù)
這個(gè)map()
函數(shù)采用以下形式:
map(function, iterable, ...)
它需要兩個(gè)必須的參數(shù):
function
- 針對每一個(gè)迭代調(diào)用的函數(shù)iterable
- 支持迭代的一個(gè)或者多個(gè)對象。在 Python 中大部分內(nèi)建對象,例如 lists, dictionaries, 和 tuples 都是可迭代的。
在 Python 3 中,map()
返回一個(gè)與傳入可迭代對象大小一樣的 map 對象。在 Python 2中,這個(gè)函數(shù)返回一個(gè)列表 list。
讓我們看看一個(gè)例子,更好地解釋map()
函數(shù)如何運(yùn)作的。假如我們有一個(gè)字符串列表,我們想要將每一個(gè)元素都轉(zhuǎn)換成大寫字母。
想要實(shí)現(xiàn)這個(gè)目的的一種方式是,使用傳統(tǒng)的for
循環(huán):
directions = ["north", "east", "south", "west"] directions_upper = [] for direction in directions: d = direction.upper() directions_upper.append(d) print(directions_upper)
輸出:
['NORTH', 'EAST', 'SOUTH', 'WEST'
使用 map()
函數(shù),代碼將會(huì)非常簡單,非常靈活。
def to_upper_case(s): return s.upper() directions = ["north", "east", "south", "west"] directions_upper = map(to_upper_case, directions) print(list(directions_upper))
我們將會(huì)使用list()函數(shù),來將返回的 map 轉(zhuǎn)換成 list 列表:
輸出:
['NORTH', 'EAST', 'SOUTH', 'WEST']
如果返回函數(shù)很簡單,更 Python 的方式是使用 lambda 函數(shù):
directions = ["north", "east", "south", "west"] directions_upper = map(lambda s: s.upper(), directions) print(list(directions_upper))
一個(gè) lambda 函數(shù)是一個(gè)小的匿名函數(shù)。
下面是另外一個(gè)例子,顯示如何創(chuàng)建一個(gè)列表,從1到10。
squares = map(lambda n: n*n , range(1, 11)) print(list(squares))
輸出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
`range()` 函數(shù)生成一系列的整數(shù)。
二、對多個(gè)迭代對象使用map()
你可以將任意多的可迭代對象傳遞給map()函數(shù)?;卣{(diào)函數(shù)接受的必填輸入?yún)?shù)的數(shù)量,必須和可迭代對象的數(shù)量一致。
下面的例子顯示如何在兩個(gè)列表上執(zhí)行元素級別的操作:
def multiply(x, y): return x * y a = [1, 4, 6] b = [2, 3, 5] result = map(multiply, a, b) print(list(result))
輸出:
[2, 12, 30]
同樣的代碼,使用 lambda 函數(shù),會(huì)像這樣:
a = [1, 4, 6] b = [2, 3, 5] result = map(lambda x, y: x*y, a, b) print(list(result))
當(dāng)提供多個(gè)可迭代對象時(shí),返回對象的數(shù)量大小和最短的迭代對象的數(shù)量一致。
讓我們看看一個(gè)例子,當(dāng)可迭代對象的長度不一致時(shí):
a = [1, 4, 6] b = [2, 3, 5, 7, 8] result = map(lambda x, y: x*y, a, b) print(list(result))
超過的元素 (7 和 8 )被忽略了。
[2, 12, 30]
三、總結(jié)
Python 的 map()
函數(shù)作用于一個(gè)可迭代對象,使用一個(gè)函數(shù),并且將函數(shù)應(yīng)用于這個(gè)可迭代對象的每一個(gè)元素。
以上就是Python Map 函數(shù)的使用的詳細(xì)內(nèi)容,更多關(guān)于Python Map 函數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!
- python 內(nèi)置函數(shù)-range()+zip()+sorted()+map()+reduce()+filter()
- Python Map 函數(shù)詳解
- Python函數(shù)中apply、map、applymap的區(qū)別
- python中幾個(gè)常用函數(shù)的正確用法-lambda/filter/map/reduce
- python中三種高階函數(shù)(map,reduce,filter)詳解
- python中map()函數(shù)使用方法詳解
- python 如何用map()函數(shù)創(chuàng)建多線程任務(wù)
- python中的map函數(shù)語法詳解
相關(guān)文章
python使用在線API查詢IP對應(yīng)的地理位置信息實(shí)例
這篇文章主要介紹了python使用在線API查詢IP對應(yīng)的地理位置信息實(shí)例,需要的朋友可以參考下2014-06-06Python使用itchat模塊實(shí)現(xiàn)簡單的微信控制電腦功能示例
這篇文章主要介紹了Python使用itchat模塊實(shí)現(xiàn)簡單的微信控制電腦功能,結(jié)合實(shí)例形式分析了Python基于itchat模塊控制電腦實(shí)現(xiàn)運(yùn)行程序、截圖等相關(guān)操作技巧,需要的朋友可以參考下2019-08-08Pytorch實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的分類方式
今天小編就為大家分享一篇Pytorch實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的分類方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01極速整理文件Python自動(dòng)化辦公實(shí)用技巧
當(dāng)涉及到自動(dòng)化辦公和文件整理,Python確實(shí)是一個(gè)強(qiáng)大的工具,在這篇博客文章中,將深入探討極速整理文件!Python自動(dòng)化辦公新利器這個(gè)話題,并提供更加豐富和全面的示例代碼,以便讀者更好地理解和運(yùn)用這些技巧2024-01-01python爬蟲beautifulsoup庫使用操作教程全解(python爬蟲基礎(chǔ)入門)
這篇文章主要介紹了python爬蟲beautifulsoup庫使用操作全解(python爬蟲基礎(chǔ)入門),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02詳解python函數(shù)傳參傳遞dict/list/set等類型的問題
這篇文章主要介紹了詳解python函數(shù)傳參傳遞dict/list/set等類型的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04