# Counting nested loop iterations

Joel Hedlund joel.hedlund at gmail.com
Fri Mar 17 13:50:56 CET 2006

```> for index, color in enumerate(color
>                               for animal in zoo
>                               for color in animal):
>     # the something more goes here.
>     pass

I've been thinking about these nested generator expressions and list
comprehensions. How come we write:

a for b in c for a in b

instead of

a for a in b for b in c

More detailed example follows below.

I feel the latter variant is more intuitive. Could anyone please explain the
fault of my logic or explain how I should be thinking about this? Or point me
to somewhere where I can read up on this?

Cheers,
Joel Hedlund

More detailed example:
>>> c = [[1,4,8],[2,5,7]]
>>> [a for b in c for a in b]
[1, 4, 8, 2, 5, 7]
>>> del a,b,c
>>> c = [[1,4,8],[2,5,7]]
>>> [a for a in b for b in c]

Traceback (most recent call last):
File "<pyshell#30>", line 1, in -toplevel-
[a for a in b for b in c]
NameError: name 'b' is not defined

```

More information about the Python-list mailing list