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))))  #第一個參數是一個函數,第二個參數是一個序列

打印結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM