Python內建函式map

2021-08-21 12:35:09 字數 1704 閱讀 6399

map()是 python 內建的高階函式,它接收乙個函式 func 和乙個 list,並通過把函式 func依次作用在 list 的每個元素上,得到乙個新的 list 並返回。

當list只有乙個時,將函式func作用於這個list的每個元素上,並返回乙個map物件。

def

func

(x):

return x**2

print(map(func, [1,2,3,4,5]))

for x in map(func, [1,2,3,4,5])):

print(x)

輸出

< map object at 0x0000029c8fd08940 >

1 4

9 16

25另乙個應用案例:將字串列表中每個字母的首字母變為大寫,其餘

def

func

(str):

stmp = str[0:1].upper() + str[1:].lower()

return stmp

lst = ['awm', 'akm', 'kar', 'groza']

print(list(map(func, lst)))

輸出結果:

['awm', 'akm', 'kar', 'groza']
當存在多個list物件時,map並行地處理傳入的list,呼叫滿足下圖規則:

def

func

(x,y,z):

result1 = x**y**z

result2 = x*y*z

return (result1, result2)

print(list(map(func, [1,2,3],[1,1,1],[3,2,1])))

輸出結果:

>>> [(1, 3), (2, 4), (3, 3)]

一些需要注意的細節在python3中map可以處理長度不同的list(但是列表成員型別必須相同),他會將所有列表截斷為最小長度

for i in map(lambda x,y:(x**y,x+y),[1,2,3,4,5,6],[1,2]):

print(i)

輸出結果:

>>> (1, 2)

(4, 4)

一些特殊用法1、用作型別轉換

for x in map(int, '1234'):

print(x)

輸出結果:

>>> 12

34

2、用作zip函式

如果函式是 none,自動假定乙個『identity』函式,這時候就是模仿 zip()

在python2.x中有

print

map(none, [1,2,3],[3,2,1])

執行結果:

>>> [(1, 3), (2, 2), (3, 1)]

但是在 python3中,返回是乙個迭代器,所以它其實是不可呼叫

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 依據提供的函式,對指定序列做對映。語法 map function,list1 list2 功能 map 接受乙個函式function,以及乙個或多個list,以引數序列list中的每乙個元素呼叫 function 函式,返回function返回值的新列表。注意 map 函式的返回值需要強制轉...