a few extensions for the itertools

Duncan Booth duncan.booth at invalid.invalid
Mon Nov 20 03:59:29 EST 2006


Mathias Panzenboeck <e0427417 at student.tuwien.ac.at> wrote:

> No, because the builtin sum want's a list. This can also handle any
> kind of iterable, so this would work:
> 
> isum(i**2 for i in xrange(100))
> 
> sum would need firs the whole list to be generated:
> 
> sum([i**2 for i in xrange(100)])

Really?

>>> sum(i**2 for i in xrange(20000000))
2666666466666670000000L

seems to work fine, and judging by the memory usage it pretty obviously 
doesn't create an intermediate list.



More information about the Python-list mailing list