Python reduce()函数的用法(附带实例)
Python 中的 reduce() 函数可以把一个函数作用在一个序列上,传入的函数必须具有两个参数,使用 reduce() 可以实现累加效果。
举个简单的例子:
reduce() 函数还可以接收第 3 个可选参数作为计算的初始值。如果把初始值设为 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)) print(sum(numbers))运行结果为:
15
15
- 首先计算前两个元素:f(1, 2),结果为 3;
- 再把计算结果和第 3 个元素计算:f(3, 3),结果为 6;
- 紧接着把结果和第 4 个元素计算:f(6, 4),结果为 10;
- 继续把结果和第 5 个元素计算:f(10, 5),结果为 15。
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。