亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

自學(xué)Python教程【第七十節(jié)】map 函數(shù)

歡迎大家來到自學(xué)Python教程教室,上一講我們學(xué)習(xí)Python的另外一個知識點Python中變量的作用域的相關(guān)知識,這節(jié)課我們來了解Python中map 函數(shù)的相關(guān)內(nèi)容,來看看吧:

來看兩個問題:

1. 假設(shè)有一個數(shù)列,如何把其中每一個元素都翻倍?

2. 假設(shè)有兩個數(shù)列,如何求和?

第一個問題,普通程序員大概會這么寫:

lst_1 = [1,2,3,4,5,6]

lst_2 = []

for item in lst_1:

lst_2.append(item * 2)

print lst_2

Python 程序員大概會這么寫:

lst_1 = [1,2,3,4,5,6]

lst_2 = [i * 2 for i in lst_1]

print lst_2

這是我在《【Python 第64課】列表綜合》里說到的方法。

今天來說另一種 Python 程序員常用的寫法 -- map:

lst_1 = [1,2,3,4,5,6]

def double_func(x):

return x * 2

lst_2 = map(double_func, lst_1)

print lst_2

map 是 Python 自帶的內(nèi)置函數(shù),它的作用是把一個函數(shù)應(yīng)用在一個(或多個)序列上,把列表中的每一項作為函數(shù)輸入進(jìn)行計算,再把計算的結(jié)果以列表的形式返回。

map 的第一個參數(shù)是一個函數(shù),之后的參數(shù)是序列,可以是 list、tuple。

所以剛剛那個問題也可以寫成:

lst_1 = (1,2,3,4,5,6)

lst_2 = map(lambda x: x * 2, lst_1)

print lst_2

這里原數(shù)據(jù)改為了元組,函數(shù)用 lambda 表達(dá)式替代??蓞⒖肌丁綪ython 第70課】lambda 表達(dá)式》,微信中回復(fù) 70。

map 中的函數(shù)可以對多個序列進(jìn)行操作。最開始提出的第二個問題,除了通常的 for 循環(huán)寫法,如果用列表綜合的方法比較難實現(xiàn),但用 map 就比較方便:

lst_1 = [1,2,3,4,5,6]

lst_2 = [1,3,5,7,9,11]

lst_3 = map(lambda x, y: x + y, lst_1, lst_2)

print lst_3

map 中的函數(shù)會從對應(yīng)的列表中依次取出元素,作為參數(shù)使用,同樣將結(jié)果以列表的形式返回。所以要注意的是,函數(shù)的參數(shù)個數(shù)要與 map 中提供的序列組數(shù)相同,即函數(shù)有幾個參數(shù),就得有幾組數(shù)據(jù)。

對于每組數(shù)據(jù)中的元素個數(shù),如果有某組數(shù)據(jù)少于其他組,map 會以 None 來補全這組參數(shù)。

此外,當(dāng) map 中的函數(shù)為 None 時,結(jié)果將會直接返回參數(shù)組成的列表。如果只有一組序列,會返回元素相同的列表,如果有多組數(shù)列,將會返回每組數(shù)列中,對應(yīng)元素構(gòu)成的元組所組成的列表。聽上去很繞口是不是……代碼試試看就明白了:

lst_1 = [1,2,3,4,5,6]

lst_2 = [1,3,5,7,9,11]

lst_3 = map(None, lst_1)

print lst_3

lst_4 = map(None, lst_1, lst_2)

print lst_4

恭喜您在Python自學(xué)的道路上又堅持了一天,今天我們學(xué)習(xí)了Python中map 函數(shù)的相關(guān)內(nèi)容,下節(jié)課我們將分享更多Python中的相關(guān)內(nèi)容,敬請關(guān)注 !

好啦,今天的分享到這里就結(jié)束了,希望大家能夠持續(xù)關(guān)注馬哥教育官網(wǎng),每天都會有大量優(yōu)質(zhì)內(nèi)容與大家分享!

聲明:文章來源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機構(gòu)!