itertools.accumulate (iterable [, func = operator.add, *, initial = None])
-> iterator
iterable - An iterable object on whose elements you want to apply the accumulation function. The elements of the object can be of any type supported by the mentioned function.
+ py3.3 func = operator.add - Accumulation function (by default the addition function is used). It must take two arguments: 1. the currently accumulated value; 2. the value of the current element.
+ py3.8 initial = None - Initial value. If specified , the iterator will return it first .
from itertools import accumulate
from operator import mul
list (accumulate ([1, 2, 3])) # [1, 3, 6]
list (accumulate ([1, 2, 3], in itial = 10)) # [10, 11, 13, 16 ]
def myfunc (accumulated, current):
return accumulated + current * 2
list (accumulate ([1, 2, 3], func = myfunc)) # [1, 5, 11]
mylist = [2, 1, 2, 0, 5, 6]
list (accumulate (my_list, mul)) # [2 , 2, 4, 0, 0, 0]
list (accumulate (my_list, min)) # [2, 1, 1, 0, 0, 0]
list (accumulate (my_list, max)) # [2, 2, 2, 2, 5, 6]