Загружаем изображение…

Знаете, что Python может считать нарастающие значения без явных циклов и промежуточных переменных?



Во многих задачах нужно считать накопительный результат — сумму, максимум, баланс, прогресс.

Обычно это делают вручную через цикл и переменную-аккумулятор:
s = 0
result = []
for x in data:
s += x
result.append(s)


itertools.accumulate делает это декларативно, сразу показывая намерение кода:
list(accumulate(data))

Причём это не только сумма, можно передать любую бинарную функцию и получить накопление по своей логике:
from operator import mul
list(accumulate(data, mul))


Это удобно для финансовых расчётов, метрик, логов, прогресса, агрегатов и любых задач с текущим состоянием:
transactions = [100, -20, 50]
balances = list(accumulate(transactions))


accumulate убирает шаблонные циклы и делает код ближе к модели данных, особенно в аналитике и потоковой обработке.

Python Ready | #совет
Просмотры: 178
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти