python全棧開發【補充】map函數和reduce函數的區別
阿新 • • 發佈:2018-02-18
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函數的區別