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。
 ICP备案:
 公安联网备案: