Python:reduce函数

大数据学习路线图

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
[返回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