1.從引數方面來講:
map()函式:
map()包含兩個引數,第一個是引數是一個函式,第二個是序列(串列或元組),其中,函式(即map的第一個引數位置的函式)可以接收一個或多個引數,
reduce()函式:
reduce() 第一個引數是函式,第二個是 序列(串列或元組),但是,其函式必須接收兩個引數,
2.從對傳進去的數值作用來講:
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]
第二個例子是111,212,363,424,535然后組成的串列
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/165610.html
標籤:Python
上一篇:python基礎教程:Python中垃圾回收和del陳述句詳解
下一篇:uni-app 呼叫 jar 包
