[Tutor] for statement with addition ...
Dave Angel
davea at ieee.org
Mon Jul 13 14:08:22 CEST 2009
Markus Hubig wrote:
> Hi @all,
>
> within diveintopython I often found a for-statement like this:
>
> f for f in bla:
> print f
>
> So what actually is the first f for ... is it just to declare f before
> starting the for loop? I can't find any information on python.org
> and it's hard to google this kinda stuff.
>
> - Markus
>
>
Please give us a reference, as to exactly where you saw that. It gives
a syntax error in Python 2.62, as I expected it would. That's not how a
for statement works.
On the other hand, if you enclose that phrase in square brackets, it
makes a list comprehension.
mylist = [f for f in bla]
A list comprehension builds a new list, where the first pieces says what
goes into the list, and the second part describes how to generate it.
In this case, if bla is already a list, this just copies the list. But
consider
mylist = [f*f for f in bla]
That builds a new list from the old, where each item is the square of
the corresponding old item.
List comprehension is something you can look up in the help. Also look
up generator expression, which uses similar syntax.
DaveA
More information about the Tutor
mailing list