question on list comprehensions
aleaxit at yahoo.com
Sun Oct 17 17:13:25 CEST 2004
Mustafa Demirhan <mustafademirhan at gmail.com> wrote:
> Why not just use while loops instead of for loops? You dont have to
> create a new array each time you want a loop - you can simply use an
> index integer.
> i = 0
> while i < 5000000:
> res  = res  + i
> i = i + 1
> Takes less than 2 seconds on my laptop.
Sure, this is fine, but low-level twiddling with indices isn't all that
nice. A compact alternative such as
res = sum(xrange(5000000))
is, IMHO, preferable to your while loop, not so much because it may be
faster, but because it expresses a single design idea ("let's sum the
first 5 million nonnegative integers") very directly, rather than
getting into the low-level implementation details of _how_ we generate
those integers one after the other, and how we sum them up ditto.
More information about the Python-list