← retour aux snippets

itertools.accumulate: cumul et min/max courant

Calculer la somme cumulée et d'autres agrégats sur un flux.

python algorithms #itertools#accumulate#running

objectif

Calculer la somme cumulée et d’autres agrégats sur un flux.

code minimal

import itertools, operator
data = [1,2,3]
s = list(itertools.accumulate(data, operator.add))
print(s == [1,3,6])  # attendu: True

utilisation

import itertools
print(list(itertools.accumulate([3,1,4], min))[-1] == 1)

variante(s) utile(s)

import itertools, operator
prod = list(itertools.accumulate([2,3,4], operator.mul))[-1]
print(prod == 24)

notes

  • Passez n’importe quelle fonction associative (min, max, add, mul, etc.).
  • Utile pour soldes cumulés, paliers, enveloppes.