Python內建函式學習 map

2021-09-22 01:22:22 字數 1566 閱讀 8348

內建函式map()把乙個函式func依次對映到序列或迭代器物件的每個元素上,並返回乙個可迭代的map物件作為結果,map物件中

每個元素是原序列經過函式func處理後的結果,map()函式不對原序列或迭代器做任何修改

語法:

map

(function, iterable,..

.)

練習:

1. 把列表中的元素轉為字串,觀察map物件本質

map_one =

map(

str,

range(10

))#構建map物件

print

(map_one)

#返回的是乙個map物件,是可迭代。屬於可變型別

print

(type

(map_one)

)

輸出:<

class

'map'

>

for i in map_one:

print

(i, end=

' ')

輸出:01

2345

6789

2. 單引數函式對映到乙個序列的所有元素上
def

addone

(x):

return x +

2

lst_one =

list

(map

(addone,

range(5

)))#range(5)中的每個元素都執行了adddemo方法,返回的結果中每個元素都加2

print

(lst_one)

輸出:[2

,3,4

,5,6

]

3. 多引數對映到多個序列上
def

addmore

(x, y)

:return x + y

lst_two =

list

(map

(addmore,

range(5

),range(5

)))#兩個序列的每個元素按照順序一一相加。

print

(lst_two)

輸出:[0

,2,4

,6,8

]

如果兩個序列的大小不一致會發生什麼?如果能正常執行func,那麼返回結果是怎樣的?

答:不一致是能正常執行的,以最小的序列為基準。如:

lst_three =

list

(map

(addmore,

range(3

),range(8

)))print

(lst_three)

#以range(3)為基準,只進行了三個元素相加,其餘的都捨掉了

輸出:[0

,2,4

]

python 內建函式map

map 函式 map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。下圖可以說明 對應下面的 def f x return x x print map f,1,2,3,4,5,6,7,8,...

python 內建函式map

map 函式 map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。下圖可以說明 對應下面的 def f x return x x print map f,1,2,3,4,5,6,7,8,...

Python內建函式map

map 是 python 內建的高階函式,它接收乙個函式 func 和乙個 list,並通過把函式 func依次作用在 list 的每個元素上,得到乙個新的 list 並返回。當list只有乙個時,將函式func作用於這個list的每個元素上,並返回乙個map物件。def func x return...