map函數和reduce函數的區別

①從參數方面來說:
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))))  #第一個參數是一個函數,第二個參數是一個序列

打印結果:函數

相關文章
相關標籤/搜索