map函式和reduce函式的區別

2022-09-03 18:48:09 字數 1631 閱讀 6661

①從引數方面來講:

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)))) #

第乙個引數是乙個函式,第二個引數是乙個序列

列印結果:

①從引數方面來講:

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)))) #

第乙個引數是乙個函式,第二個引數是乙個序列

列印結果:

map 函式和reduce 函式

map 函式 也稱對映物件函式,接受兩個引數,第乙個是函式,第二個是序列。map 將傳入的函式依次作用到序列的每個元素並把結果作為list返回。map返回的結果是乙個可迭代的map物件,可以使用 next 獲取值,也可使用for迴圈迭代獲取或者直接轉換為list獲取更加暴力。def demo x r...

map 函式和 reduce 函式

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

map函式和reduce函式

map 函式接收兩個引數,乙個是函式,乙個是iterable,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回。def f x return x x r map f,1,2,3,4,5,6,7,8,9 list r 1,4,9,16,25,36,49,64,81 ma...