python中map函式的用法

2021-10-09 11:14:07 字數 1707 閱讀 5522

map函式的原型是map(function, iterable, …),它的返回結果是乙個列表

引數function傳的是乙個函式名,可以是python內建的,也可以是自定義的。

引數iterable傳的是乙個可以迭代的物件,例如列表,元組,字串這樣的。

這個函式的意思就是將function應用於iterable的每乙個元素,結果以列表的形式返回。

iterable後面還有省略號,意思就是可以傳很多個iterable,如果有額外的iterable引數,並行的從這些引數中取元素,並呼叫function。

注意

如果乙個iterable引數比另外的iterable引數要短,將以none擴充套件該引數元素。

a=(1,2,3,4,5)

b=[1,2,3,4,5]

c="xiaoming"

la=map(str,a)

lb=map(str,b)

lc=map(str,c)

print(la)

print(lb)

print(lc)

輸出:['1', '2', '3', '4', '5']

['1', '2', '3', '4', '5']

['x', 'i', 'a', 'o', 'm', 'i', 'n', 'g']

str()是python的內建函式,這個例子是把列表/元組/字串的每個元素變成了str型別,然後以列表的形式返回。當然我們也可以傳入自定義的函式,看下面的例子。

def mul(x):

return x*x

n=[1,2,3,4,5]

res=map(mul,n)

輸出:[1, 4, 9, 16, 25]

把列表n中的每個元素執行一次mul函式後得到的結果作為最終結果列表的元素。再看下有多個iterable引數的情況。

def add(x,y,z):

return x+y+z

list1=[1,2,3]

list2=[1,2,3]

list3=[1,2,3]

res=map(add,list1,list2,list3)

print(res)

輸出:[3, 6, 9]

並行的從三個列表中各自取出元素然後執行add函式,有人可能會問,如果三個列表長度不一樣怎麼辦,前面已經說了,對於短的那個iterable引數會用none填補。

對於上面的例子,如果list3=[1,2]的話,那麼這個程式會報錯,因為雖然在執行add函式的時候列表list3的最後乙個元素會用none填補,但是none和int型別的數是不能相加的。也就是說,除非引數function支援none的運算,否則根本沒意義。現在我們看下另乙個例子你就明白了

def add(x,y,z):

return x,y,z

list1 = [1,2,3]

list2 = [1,2,3,4]

list3 = [1,2,3,4,5]

res = map(add, list1, list2, list3)

print(res)

輸出:[(1, 1, 1), (2, 2, 2), (3, 3, 3), (none, 4, 4), (none, none, 5)]

python中map()函式用法

map函式的原型是map function,iterable,它的返回結果是乙個列表。引數function傳的是乙個函式名,可以是python內建的,也可以是自定義的。引數iterable傳的是乙個可以迭代的物件,例如列表,元組,字串這樣的。這個函式的意思就是將function應用於iterable...

python中map()函式的用法

map函式的功能是將給定的列表做乙個對映 map function,list1 function是一具用某種功能的函式 list是給定的列表 舉例說明 例1def double x return x 2list 1,2,3,4 list1 map double,list print list1 執行...

python中map 函式的用法介紹

引入map 方法,首先是從一行 切入的。如下 dicts list map lambda x x.to dict user 大家能看懂嗎?不難看出此行 最重要的map 方法的使用。那麼,接下來,我們來介紹map 方法。map 的原型是map function,iterable,它的返回結果是乙個列表...