Python中map和reduce函数

 

①从参数方面来讲:

map()函数:

map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组)。其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数。

reduce()函数:

reduce() 第一个参数是函数,第二个是 序列(列表或元组)。但是,其函数必须接收两个参数。

②从对传进去的数值作用来讲:

map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次;(请看下面的栗子)

reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算),

最终结果是所有的元素相互作用的结果。

(1)map测试代码以及运行结果图

1 def hanshu(x,):
2     return x*x3 def prod():
4     return map(hanshu,[3,5,7,9])
5 print(list(prod()))
6 
7 F:\python\python.exe F:/python/Projects/11111.py
8 [9, 25, 49, 81]

(2)reduce测试代码以及运行结果图

 1 from functools import reduce
 2 def hanshu(x,y):
 3     return x*y
 4 def prod():
 5     return reduce(hanshu,[3,5,7,9])
 6 print(prod())
 7 
 8 F:\python\python.exe F:/python/Projects/11111.py
 9 945
10 
11 Process finished with exit code 0

①从参数方面来讲:

map()函数:

map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组)。其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数。

reduce()函数:

reduce() 第一个参数是函数,第二个是 序列(列表或元组)。但是,其函数必须接收两个参数。

②从对传进去的数值作用来讲:

map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次;(请看下面的栗子)

reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算),

最终结果是所有的元素相互作用的结果。

(1)map测试代码以及运行结果图

1 def hanshu(x,):
2     return x*x3 def prod():
4     return map(hanshu,[3,5,7,9])
5 print(list(prod()))
6 
7 F:\python\python.exe F:/python/Projects/11111.py
8 [9, 25, 49, 81]

(2)reduce测试代码以及运行结果图

 1 from functools import reduce
 2 def hanshu(x,y):
 3     return x*y
 4 def prod():
 5     return reduce(hanshu,[3,5,7,9])
 6 print(prod())
 7 
 8 F:\python\python.exe F:/python/Projects/11111.py
 9 945
10 
11 Process finished with exit code 0

猜你喜欢

转载自www.cnblogs.com/888888CN/p/9101378.html