python中map 函式的用法介紹

2021-08-22 00:16:33 字數 1436 閱讀 1081

引入map()方法,首先是從一行**切入的。

**如下:

dicts = list(map(lambda x : x.to_dict(), user))
大家能看懂嗎?

不難看出此行**最重要的map()方法的使用。那麼,接下來,我們來介紹map()方法。

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

引數    function:傳的是乙個函式名,可以是python內建的,也可以是自定義的。 就像上面的匿名函式lambda

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

這個函式的意思就是將function應用於iterable的每乙個元素,結果以列表的形式返回。注意到沒有,iterable後面還有省略號,意思就是可以傳很多個iterable,如果有額外的iterable引數,並行的從這些引數中取元素,並呼叫function。如果乙個iterable引數比另外的iterable引數要短,將以none擴充套件該引數元素。還是看例子來理解吧!

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

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

c="lh"

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']

['l', 'h']

不難看出str是python中的內建函式,那麼我們也可以自定乙個函式,無論是累加,乘,除,方差等等都可以自定義,按照需求。

那麼,如果裡面有多個可迭代的物件呢?會怎麼執行?三個物件的長度不一致怎麼辦?

如下例子:不難看出,較短的列表會用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)]

那麼,我們最開始的**:

dicts = list(map(lambda x : x.to_dict(), user))
也就是在將user中的每乙個元素交給匿名函式去執行to_dict()方法,並且返回乙個列表。

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