1. 程式人生 > >python全棧開發【補充】map函數和reduce函數的區別

python全棧開發【補充】map函數和reduce函數的區別

lambda mage 多個 計算 兩個 數值 ima 所有 post

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

打印結果:

技術分享圖片





python全棧開發【補充】map函數和reduce函數的區別