Python中map和reduce函式??

2022-08-20 06:54:15 字數 1284 閱讀 4926

①從引數方面來講:

map()函式:

map()包含兩個引數,第乙個是引數是乙個函式,第二個是序列(列表或元組)。其中,函式(即map的第乙個引數位置的函式)可以接收乙個或多個引數。

reduce()函式:

reduce() 第乙個引數是函式,第二個是 序列(列表或元組)。但是,其函式必須接收兩個引數。

②從對傳進去的數值作用來講:

map()是將傳入的函式依次作用到序列的每個元素,每個元素都是獨自被函式「作用」一次;(請看下面的栗子)

reduce()是將傳人的函式作用在序列的第乙個元素得到結果後,把這個結果繼續與下乙個元素作用(累積計算),

最終結果是所有的元素相互作用的結果。(請看下面的栗子)

舉個栗子:

map()函式:

1

#傳入乙個引數

2def

one_p(x):

3return x *x

4print

'map1.1:

', map(one_p, range(1, 5)) 5#

結果:map1.1: [1, 4, 9, 16]

6print

'map1.2:

', map(one_p, [1, 2, 3, 4, 5, 6]) 7#

結果:map1.2: [1, 4, 9, 16, 25, 36] 89

#傳入多個引數

10 a = [1, 2, 3, 4, 5]

11 b = [1, 1, 6, 2, 3]

12 c = [1, 2, 3, 4, 5]

13 s = map(lambda (x, y, z): x * y *z, zip(a, b, c))

14print

'map2:

', s 15#

結果:map2: [1, 4, 54, 32, 75]

reduce()函式:

1 r1 = reduce(lambda x, y: x * y, (2, 2, 6, 2))  #

運算過程:(((2*2)*6)*2)

2 r2 = reduce(lambda x, y: x * y, (2, 2, 6), 2) #

運算過程:(((2*2)*6)*2)34

print

'r1:

', r1 #

結果:r1: 48

5print

'r2:

', r2 #

結果:r2: 48

Python中map和reduce函式

從引數方面來講 map 函式 map 包含兩個引數,第乙個是引數是乙個函式,第二個是序列 列表或元組 其中,函式 即map的第乙個引數位置的函式 可以接收乙個或多個引數。reduce 函式 reduce 第乙個引數是函式,第二個是 序列 列表或元組 但是,其函式必須接收兩個引數。從對傳進去的數值作用...

python中map和zip的用法

1,map 是python的乙個內建函式,它接收乙個函式和乙個可迭代物件 如列表 作為引數,用函式處理每個元素,然後返回新的列表。l1 1 2 3 4 5 print map int,l1 輸出 1,2,3,4,5 print map lambda x int x 2,l1 輸出 2,4,5,8,1...

Python 中 map和reduce 的用法

首先是map 接受兩個引數,第乙個是函式,第二個是乙個可迭代的的引數 iterable 如下例子,我們定義乙個函式f x x 2 map的用法 deffunc x return x x m map func,range 1,8 print list m 輸出 1,4,9,16,25,36,49 這段...