python的map和reduce的區別

2021-10-07 02:16:59 字數 1107 閱讀 2390

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...