map()主要是對映,進行並行運算,而reduce()如其名,減少,歸納,
map()函式有兩個引數(型別),第乙個引數是函式,第二個引數是乙個序列(從第二個起,可以有多個引數,根據第乙個引數函式接受的引數來定)
reduc()e函式有兩個引數,但是區別在於reduce()第乙個引數的函式必須接受兩個引數
話不多說,直接擺例子
map():
l = [1, 2, 3, 4]
def func(x, y):
print("%s,%s"%(x,y))
x = x+2
print(x)
return x
res = map(func,l,l)
print(list(res))
輸出:
1,1
32,2
43,3
54,4
6[3, 4, 5, 6]
reduce():
l = [1, 2, 3, 4]
def func(x, y):
print("%s,%s"%(x,y))
x = x+2
print(x)
return x
res = reduce(func, l)
print(res)
輸出:
1,2
33,3
55,4
77
從這裡可以看出reduce()是先取序列第乙個值與第二個值進行運算,然後將return值(注意這裡是return值)作為引數函式的第乙個值x,然後再取序列第三個值為y,再運算,最後返回總和
l = [1, 2, 3, 4]
def func(x, y):
print("%s,%s"%(x,y))
x = x+2
print(x)
return 3
res = reduce(func, l)
print(res)
輸出:1,2
33,3
53,4
53
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和zip的用法
1,map 是python的乙個內建函式,它接收乙個函式和乙個可迭代物件 如列表 作為引數,用函式處理每個元素,然後返回新的列表。l1 1 2 3 4 5 print map int,l1 輸出 1,2,3,4,5 print map lambda x int x 2,l1 輸出 2,4,5,8,1...