partial sums problem

Terry Reedy tjreedy at udel.edu
Wed Sep 29 03:12:48 CEST 2010


On 9/28/2010 6:57 PM, kj wrote:
>
>
> The following attempt to get a list of partial sums fails:
>
>>>> s = 0
>>>> [((s += t) and s) for t in range(1, 10)]
>    File "<stdin>", line 1
>      [((s += t) and s) for t in range(1, 10)]
>            ^
> SyntaxError: invalid syntax
>
> What's the best way to get a list of partial sums?

Do not try to do a reduction with a comprehension. Just write clear, 
straightforward code that obviously works.

s=[1,2,3,4,5,6]
def cusum(s):
   t = 0
   for i in s:
       t += i
       yield t

print(list(cusum(s)))
 >>>
[1, 3, 6, 10, 15, 21]
-- 
Terry Jan Reedy




More information about the Python-list mailing list