Python中的map與reduce函式簡介

2022-06-06 06:39:13 字數 1217 閱讀 3026

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

python中的map 函式

python中的map 函式應用於每乙個可迭代的項,返回的是乙個結果list。map 接受兩個引數,乙個是函式,乙個是序列。例項 map function,iterable,l 1,2,3,4 defpow2 x return x x list map pow2,l 執行結果 1,4,9,16 de...

python中的map函式

map 函式 map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。例如,對於list 1,2,3,4,5,6,7,8,9 如果希望把list的每個元素都作平方,就可以用map 函式 因此...

Python中的map學習

1.map 函式 功能 map會根據提供的函式對指定的序列做對映。語法 map function,iterable,示例程式 def f x return x x print list map f,1,2,3,4 1,4,9,16 python2 print map lambda x,y x y,1...