Accumulate function in python

dhruvbird dhruvbird at gmail.com
Mon Jul 19 13:01:59 EDT 2010


On Jul 19, 4:28 pm, Peter Otten <__pete... at web.de> wrote:
> dhruvbird wrote:
> >   I have a list of integers: x = [ 0, 1, 2, 1, 1, 0, 0, 2, 3 ]
> >   And would like to compute the cumulative sum of all the integers
> > from index zero into another array. So for the array above, I should
> > get: [ 0, 1, 3, 4, 5, 5, 5, 7, 10 ]
> >   What is the best way (or pythonic way) to get this.
>
> Homework?

not really :)

It's just that I was wondering if a built-in function for doing such
things (which I find myself doing increasingly with an explicit loop)
exists.

Regards,
-Dhruv.

>
> >>> def cumulative_sum(values, start=0):
>
> ...     for v in values:
> ...             start += v
> ...             yield start
> ...>>> list(cumulative_sum([ 0, 1, 2, 1, 1, 0, 0, 2, 3 ]))
>
> [0, 1, 3, 4, 5, 5, 5, 7, 10]
>
> Peter




More information about the Python-list mailing list