Comprehension with two variables - explanation needed

Skip Montanaro skip.montanaro at
Sun Nov 23 17:45:08 CET 2014

On Sun, Nov 23, 2014 at 9:57 AM, Roy Smith <roy at> wrote:
> If it was complicated enough that you needed to loopify it to
> understand what it's doing, have pity on the next person who has to
> maintain your code and leave it as a loop

Well, sure. I was mostly trying to give Ivan a path out of the weeds.
Poking through the code I'm involved with at work, using a crude
measuring stick (a couple regular expressions) I found over 1400 one
line list comprehensions, those which matched this regular expression:

\[.* for .*\]

OTOH, I only found 14 with two "for" keywords:

\[.* for .* for .*\]

(There may well have been more nested loop list comprehensions, simply
because it's hard to cram the full listcomp into 80 columns, my
self-imposed column limit.)

In my experience, list comprehensions rapidly get unwieldy once you
get to nesting them. I generally unravel such items into a nested set
of for loops.


More information about the Python-list mailing list