map()接收一個函數(shù)f和一個序列l(wèi)ist作為參數(shù)夹纫,并通過f依次作用在list的每一個元素上并返回一個新的list2{注意:是不改變原來的序列列疗,而生成新的序列}赃绊,
即將序列l(wèi)ist的每一個元素作為函數(shù)f的傳參膳灶,list2=map(f,list)
由于list包含的元素可以是任何類型嚎莉,因此悯搔,map() 不僅僅可以處理只包含數(shù)值的 list灾常,事實上它可以處理包含任意類型的 list,只要傳入的函數(shù)f可以處理這種數(shù)據(jù)類型发魄。
舉例1:
list1=[1,2,3,4,5,6]需要將list的每個元素乘方返回新的序列
def f(x):
return x*x
list2=map(f,list1)
print(list2)
結(jié)果:
<map object at 0x000002A4F1DB66D8>
因為在python3中,map()返回的是一個iterator迭代器盹牧,不是序列
print(list(list2))
結(jié)果:
[1, 4, 9, 16, 25, 36]
所以如果要在python3中實現(xiàn)返回序列的效果,可以加list(map(f,list))強轉(zhuǎn)成序列
舉例2:
按照首字母大寫励幼,后續(xù)字母小寫的規(guī)則汰寓,規(guī)范英文名字的list
names1=['adam', 'LISA', 'barT']
def format_name(s):
s2=s[0:1].upper()+s[1:].lower()
return s2
names2=map(format_name,names1)
print(list(names2))
結(jié)果:
['Adam', 'Lisa', 'Bart']
舉例3:
當seq序列多于一個時,map可以并行(注意是并行)
l2=map(lambda x,y:x**y,[1,2,3],[1,2,3])
for i in l2:
print(i)
結(jié)果:第一個序列的每個元素作為x的值赏淌,第二個序列的每個元素作為y的值踩寇,求冪
1
4
27
l3 = map(lambda x, y: (x ** y, x + y), [1, 2, 3], [1, 2, 3])
for i in l3:
print(i)
結(jié)果:
(1, 2)
(4, 4)
(27, 6)
舉例4:
類型轉(zhuǎn)換
l=map(int,'1234')
for i in l:
print(type(i))
print(i)
結(jié)果:
<class 'int'>
1
<class 'int'>
2
<class 'int'>
3
<class 'int'>
4
python的map()函數(shù)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門啡莉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來港准,“玉大人,你說我怎么就攤上這事咧欣∏掣祝” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵魄咕,是天一觀的道長衩椒。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么毛萌? 我笑而不...
- 正文 為了忘掉前任苟弛,我火速辦了婚禮,結(jié)果婚禮上阁将,老公的妹妹穿的比我還像新娘膏秫。我一直安慰自己,他們只是感情好做盅,可當我...
- 文/花漫 我一把揭開白布荔睹。 她就那樣靜靜地躺著,像睡著了一般言蛇。 火紅的嫁衣襯著肌膚如雪僻他。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼娇妓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了活鹰?” 一聲冷哼從身側(cè)響起哈恰,我...
- 正文 年R本政府宣布讲衫,位于F島的核電站缕棵,受9級特大地震影響孵班,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜招驴,卻給世界環(huán)境...
- 文/蒙蒙 一篙程、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧别厘,春花似錦虱饿、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至冗懦,卻和暖如春爽冕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背披蕉。 一陣腳步聲響...