python中reduce是什么意思,python中的map和reduce有什么不同
從參數方面來講:
map()函數:
map()包含兩個參數,第一個是參數是一個函數,第二個是序列(列表或元組)。其中,函數(即map的第一個參數位置的函數)可以接收一個或多個參數。
reduce()函數:
reduce() 第一個參數是函數,第二個是 序列(列表或元組)。但是,其函數必須接收兩個參數。
從對傳進去的數值作用來講:
map()是將傳入的函數依次作用到序列的每個元素,每個元素都是獨自被函數“作用”一次;(請看下面的栗子)
reduce()是將傳人的函數作用在序列的第一個元素得到結果后,把這個結果繼續與下一個元素作用(累積計算),
最終結果是所有的元素相互作用的結果。(請看下面的栗子)
舉個栗子:
map()函數:#?傳入一個參數
def?one_p(x):
return?x?*?x
print?'map1.1:',?map(one_p,?range(1,?5))
#結果:map1.1:?[1,?4,?9,?16]
print?'map1.2:',?map(one_p,?[1,?2,?3,?4,?5,?6])
#結果:map1.2:?[1,?4,?9,?16,?25,?36]
#?傳入多個參數
a?=?[1,?2,?3,?4,?5]
b?=?[1,?1,?6,?2,?3]
c?=?[1,?2,?3,?4,?5]
s?=?map(lambda?(x,?y,?z):?x?*?y?*?z,?zip(a,?b,?c))
print?'map2:',?s
#結果:map2:?[1,?4,?54,?32,?75]
reduce函數r1?=?reduce(lambda?x,?y:?x?*?y,?(2,?2,?6,?2))??#運算過程:(((2*2)*6)*2)
r2?=?reduce(lambda?x,?y:?x?*?y,?(2,?2,?6),?2)??#
運算過程:(((2*2)*6)*2)
print?'r1:',?r1??#?結果:r1:?48
print?'r2:',?r2??#?結果:r2:?48
總結
以上是生活随笔為你收集整理的python中reduce是什么意思,python中的map和reduce有什么不同的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: i5-8250u对比i7-8550u(i
- 下一篇: PHP7不能用string类名,thin