Python的内置函数accumulate()是一个可迭代对象的函数,它将迭代器数据类型的数据逐个输入到一个函数中,然后将函数返回的结果逐个归纳汇总起来,最终输出这些汇总值的一个可迭代对象。accumulate()函数可以用于计算累和、累积积和等等。
使用方法
accumulate()函数接收两个参数:一个可迭代对象iterable和func函数。其中iterable参数是需要进行累加的对象(如列表、元组、集合等),而func参数是一个函数,用于指定如何归纳汇总每个数据。当不填写func时,默认的是使用加法运算符进行归纳。
以下是函数使用的完整语法格式:
import itertools
itertools.accumulate(iterable[, func])
示例
示例1:使用加法运算符累计计算列表累和
import itertools
numbers = [1, 2, 3, 4, 5]
result = list(itertools.accumulate(numbers))
print(result)
输出结果为:
[1, 3, 6, 10, 15]
通过上述代码,我们可以看到 accumulate 将 numbers 中的元素一个个传入到操作函数中,由于没有指定操作函数,默认将两个元素相加计算总和。因此在处理的过程中,我们可以看到汇总值的列表中,每个元素都是原列表中的前n个元素按照一定操作函数处理汇总后得到的结果。
示例2:使用乘法运算符累计计算元组中的连续累积积
import itertools
numbers = (1, 2, 3, 4, 5)
result = list(itertools.accumulate(numbers, lambda x, y: x * y))
print(result)
输出结果为:
[1, 2, 6, 24, 120]
以上代码中,我们在函数的第二个参数中自己定义了一个操作函数,即lambda x, y: x * y,它实现了一个数据的累积输出,通过“累积”乘法将前面结果与每个元素相乘计算出累积结果,从而得到了一个连续的乘积序列。