Создаёт итератор по элементам, к которым применена функция аккумулирования.
itertools.accumulate(iterable[, func=operator.add, *, initial=None])
-> iterator
iterable -- Объект, поддерживающий итерирование, к элементам которого требуется применить функцию аккумулирования. Элементы объекта могут быть любых типов, поддерживаемых упомянутой функцией.

+py3.3 func=operator.add -- Функция аккумулирования (по умолчанию используется функция сложения). Должна принимать два аргумента: 1. аккумулированное на данный момент значение; 2. значение текущего элемента.

+py3.8 initial=None -- Начальное значение. Если указано, то итератор вернёт его первым.

    from itertools import accumulate
from operator import mul


list(accumulate([1, 2, 3])) # [1, 3, 6]
list(accumulate([1, 2, 3], initial=10)) # [10, 11, 13, 16]


def myfunc(accumulated, current):
return accumulated + current * 2


list(accumulate([1, 2, 3], func=myfunc)) # [1, 5, 11]


my_list = [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]

Синонимы поиска: itertools.accumulate, itertools, accumulate
На заметку
Зарегистрированные пользователи могут публиковать свои Статьи.