map()函式接受兩個引數,乙個是函式(f),乙個是可迭代物件iterable ,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的迭代器iterator 返回
例如:
deff(x):
return(x*x)
r=map(f,[1,2,3,4,5])
r #
是乙個迭代器
list(r) #
將r變成list
注意:如果是自定義函式,引數只能有乙個,否則會報錯,但如果是匿名函式lambda,則可以接受多個引數
deff(x,y):
return(x+y)
r=map(f,([1,2,3,4,],[1,2,3,4]))
rlist(r)
#報錯
要記住map將傳入的函式依次作用到序列的每個元素,是每個元素,這樣可以做很多事情
#可以簡單地將list所有數字轉為str
list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])) #
['1', '2', '3', '4', '5', '6', '7', '8', '9']
配合lambda使用
map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])#不輸出結果
配合lambda輸出是元組
map(lambda x, y : (x*y,x+y),[2,4,6],[3,2,1]) #[3, 7, 11, 15, 19]
還有其他功能
#1.當不傳入function時,map()就等同於zip(),將多個列表相同位置的元素歸併到乙個元組
map(none,[2,4,6],[3,2,1])
#結果[(2,3),(4,2),(6,1)]
#2.將元組轉換為list:
map(int,(1,2,3))
#3.將字串轉換為list:
map(int,'
1234')
#4.提取字典中的key,並將結果放在乙個list中:
map(int,)
map引數是字典dict是,記得,key是被替換的值,value是用來替換的值,這主要用於列名重新命名或者是值得重新賦值或者替換
reduce()函式接受兩個引數,乙個是函式(f必須接受兩個引數),乙個是可迭代物件iterable,reduce把前面2個元素作用於f,得到的結果再與下乙個元素作用於f,直到最後乙個元素
reduce(f,[x1,x2,x3,x4])=f(f(f(x1,x2),x3),x4)
from functools importreduce
defadd(x,y):
return(x+y)
reduce(add,[1,2,3,4,5]) #
序列求和
from functools import
reduce
deffn(x,y):
return(x*10+y)
reduce(fn,[1,3,5,9]) #
1359 將[1,3,5,9]變成1359
python的map 和filter 函式
map 函式 map 函式,顧名思義,用於對映,把乙個序列的每乙個元素對映到函式中,然後返回乙個迭代物件。例如 def square x return x 2 print list map square,1,2,3 1,4,9 這裡注意要用list作轉換當然也可以用匿名函式lambda print ...
python的map和zip操作
如果要將乙個string list轉換成int list list裡每個string都轉成int 比如 python 0 1 2 0,1,2 可以使用 python int x for x in list 或者使用map操作 map func,list 對list裡的每個元素apply func.p...
python的map和reduce的區別
map 主要是對映,進行並行運算,而reduce 如其名,減少,歸納,map 函式有兩個引數 型別 第乙個引數是函式,第二個引數是乙個序列 從第二個起,可以有多個引數,根據第乙個引數函式接受的引數來定 reduc e函式有兩個引數,但是區別在於reduce 第乙個引數的函式必須接受兩個引數 話不多說...