[Tutor] question about for loops

Eike Welk eike.welk at gmx.net
Thu Jan 7 14:39:55 CET 2010


Hello Richard!

On Thursday January 7 2010 13:43:26 Richard D. Moores wrote:
> On p. 162 of "Programming In Python", 2nd ed., by Summerfield, the
> section entitled "for Loops" begins:
> 
> =========================================
> for expression in iterable:
>      for_suite
> else:
>      else_suite
> 
> The expression is normally either a single variable or a sequence of
> variables, usually in the form of a tuple. If a tuple or list is used
> for the expression, each item is unpacked into the expression's items.
> ======================================
> 
> I thought I was quite familiar with for loops, but I don't understand
> how the expression can be a sequence of variables, nor what  unpacking
> into the expression's items means. Could someone explain this,
> preferably with an example?

Your book seems to be a bit sloppy with the terms it chooses for describing 
the syntax. Look at the official syntax description section 7.3:
http://docs.python.org/reference/compound_stmts.html#the-for-statement

After the for statement there is no expression, but something called 
target_list. This target_list normally contains unknown variables, which are 
illegal in expressions. 

The whole complicated wording refers to this case:
>>> for a,b,c in ((1,2,3), (4,5,6), (10,20,30)):
...     print a,b,c
...
1 2 3
4 5 6
10 20 30


Unpacking is the operation done in:
    a,b,b = (2,4,5)

The "a,b,c" on the left side of the assignment operator is also a target list. 
See section 6.2:
http://docs.python.org/reference/simple_stmts.html#assignment-statements


Eike.


More information about the Tutor mailing list