reduce()
reduce函数接收两个参数,一个是函数f,一个是Iterator,其中函数f必须接收两个参数。reduce在Iterator的第一二个元素上执行函数f得到结果res,然后将结果res继续与第三个元素作为函数f的两个参数执行函数f,直到遍历完成。例如:
- from functools import reduce
- def f(x,y):
- return x * y
- #range(1,4)生成一个序列[1,2,3]
- result = reduce(f,range(1,4)) #返回一个值1*2*3
- print(result)
Python
输出结果:
6
其详细计算过程为:
1*2=2
2*3=6
注意:使用reduce函数时,需要利用from functools import reduce
语句引入functools
模块的reduce
函数,否则会执行出错。
下面来定义匿名函数作为reduce()方法的参数,来进行计算。例如:
- from functools import reduce
- def f(x,y):
- return x - y
- #这里匿名函数的括号可加可不加,为了避免肉眼混淆,建议加上括号
- result = reduce((lambda x,y:x-y),[8,3,1]) #返回一个值8-3-1
- print(result)
Python
输出结果:
4
其详细计算的过程为:
8-3=5
5-1=4