1. 程式人生 > >map函式和reduce函式、filter函式的區別

map函式和reduce函式、filter函式的區別

 

 

①從引數方面來講:
map()函式:
  map()包含兩個引數,第一個是引數是一個函式,第二個是序列(列表或元組)。其中,函式(即map的第一個引數位置的函式)可以接收一個或多個引數。
reduce()函式:
reduce() 第一個引數是函式,第二個是 序列(列表或元組)。但是,其函式必須接收兩個引數。

②從對傳進去的數值作用來講:
map()是將傳入的函式依次作用到序列的每個元素,每個元素都是獨自被函式“作用”一次;
reduce()是將傳人的函式作用在序列的第一個元素得到結果後,把這個結果繼續與下一個元素作用(累積計算),
最終結果是所有的元素相互作用的結果。
練習:
計算:lambda和reduce實現1到100的累加
from functools import reduce
print(reduce(lambda x,y:sum([x,y]),range(1,101)))  #第一個引數是一個函式,第二個引數是一個序列

 


print(map(lambda x,y:sum([x,y]),range(1,101))) #第一個引數是一個函式,第二個引數是一個序列

 



print(list(map(lambda x,y:sum([x,y]),range(1,101),range(1,101)))) #第一個引數是一個函式,第二個引數是一個序列