Bug in list comprehensions?

Sion Arrowsmith siona at chiark.greenend.org.uk
Wed Jun 7 13:43:08 CEST 2006

Fredrik Lundh  <fredrik at pythonware.com> wrote:
>Iain King wrote:
>> I'm guessing I'm the one confused here... but I'm confused!  What's 
>> going on?
>the clauses nest from left to right, not from right to left, so "[x for 
>x in y for y in beta]" is equivalent to
>      out = []
>      for x in y:
>          for y in beta:
>              out.append(x)

And a list comprehension doesn't get a namespace to itself (cf.
generator comprehensions) so "leaks" its variables. Exactly as
above. So the y being iterated over in "for x in y" is the y
from the previous inner iteration ("for y in beta").

\S -- siona at chiark.greenend.org.uk -- http://www.chaos.org.uk/~sion/
  ___  |  "Frankly I have no feelings towards penguins one way or the other"
  \X/  |    -- Arthur C. Clarke
   her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump

More information about the Python-list mailing list