首页 > 编程笔记 > Python笔记 阅读:32

Python reduce()函数的用法(附带实例)

Python 中的 reduce() 函数可以把一个函数作用在一个序列上,传入的函数必须具有两个参数,使用 reduce() 可以实现累加效果。

举个简单的例子:
from functools import reduce
numbers = [1,2,3,4,5]
def f(x,y):
    return x+y
print(reduce(f,numbers))
print(sum(numbers))
运行结果为:

15
15

可以看到,使用 reduce() 实现了累加功能,效果与 sum() 函数一样。reduce() 的执行过程为:
reduce() 函数还可以接收第 3 个可选参数作为计算的初始值。如果把初始值设为 10,则:
from functools import reduce
numbers = [1,2,3,4,5]
def f(x,y):
    return x+y
print(reduce(f, numbers, 10))
计算结果将是 25,因为首先计算 f(10, 1),得到结果 11,然后计算 f(11, 2),得到结果 13,直到计算完成,最终的结果为 25,相当于将列表中元素的累加值加上了初始值 10。

由于以上代码的功能与 Python 内置函数 sum() 的效果相同,因此没有存在的必要,可以使用 reduce() 函数实现求乘积的功能,即:
from functools import reduce
numbers = [1,2,3,4,5]
def f(x,y):
    return x * y
print(reduce(f,numbers))
执行程序,得到的正确结果为 120。

相关文章