【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
[返回Python教程首页]
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)
输出结果:
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)
输出结果:
4
其详细计算的过程为:
8-3=5
5-1=4