map()函數(shù)接收兩個參數(shù),一個是函數(shù),一個是Iterable,map將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的Iterator返回。
現(xiàn)在,我們用Python代碼實現(xiàn):
>>>deff(x):...returnx*x
...>>>r=map(f,[1,2,3,4,5,6,7,8,9])
>>>list(r)
[1,4,9,16,25,36,49,64,81]
map()傳入的第一個參數(shù)是f,即函數(shù)對象本身。由于結(jié)果r是一個Iterator,Iterator是惰性序列,因此通過list()函數(shù)讓它把整個序列都計算出來并返回一個list。
你可能會想,不需要map()函數(shù),寫一個循環(huán),也可以計算出結(jié)果:
L=[]fornin[1,2,3,4,5,6,7,8,9]:
L.append(f(n))
print(L)
的確可以,但是,從上面的循環(huán)代碼,能一眼看明白“把f(x)作用在list的每一個元素并把結(jié)果生成一個新的list”嗎?
所以,map()作為高階函數(shù),事實上它把運算規(guī)則抽象了,因此,我們不但可以計算簡單的f(x)=x2,還可以計算任意復(fù)雜的函數(shù),比如,把這個list所有數(shù)字轉(zhuǎn)為字符串:
>>>list(map(str,[1,2,3,4,5,6,7,8,9]))
['1','2','3','4','5','6','7','8','9']
以上內(nèi)容為大家介紹了python培訓(xùn)之map函數(shù)怎么顯示結(jié)果,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。http://www.2667701.com/