python高阶内置函数reduce的简介和简单应用:等差数列求和

reduce函数也是python中常用的一个内置函数,我们在使用的时候可以从functools中导入它

from functools import reduce

他的中文名可以翻译成规约函数,他可以接受三个参数,其中2个必选参数,一个可选参数,原型为:
reduce(function,iterable,[init])
1.function为计算所需要依据的规则,他必须是2元函数
2.iterable为迭代器,给计算提供的数据
3.init为初始值,这是可选参数,如果填上了,那么一开始计算的初值就是init,如果没有填,默认是iterable的第一位

reduce将对iterable迭代器中的元素从左到右依次进行二元规约计算,然后把前一次计算的返回值和迭代器的后一个元素作为新的二元函数参数传入函数,进行再一次的计算,指导迭代器中的元素归约到1个。

我们可以用下面的函数感受一下

from functools import reduce
result = reduce(lambda x,y:x+y,list(range(10)),1)
print(result)

输出结果为:

46

如果我们去掉可选参数1,输出的结果为

45

这其实就完成了对等差数列0,1,2,3,4,5,6,7,8,9的求和运算,我们知道对于任意等差数列,都可以使用range函数来进行生成,只要给出初始值,最终值和公差即可,因此,我们可以使用reduc函数来完成理论上任意等差数列的求和工作。

上一篇:什么是python中的可迭代对象(iterable object)?


下一篇:python 迭代器Iterable