Duncan Booth wrote: > Steve Holden <[EMAIL PROTECTED]> wrote: > >>> For a moment I thought that maybe list comprehension has its own >>> scope, but it doesn't seem to be so: >>> print [[y for y in range(8)] for y in range(8)] >>> print y >>> >>> Does anybody understand it? >>> >>> >> This isn't _a_ list comprehension, it's *two* list comprehensions. The >> interpreter computes the value if the inner list comprehension and >> then duplicates eight references to it (as you will see if you change >> an element). >> > Do you want to reconsider that statement? The interpreter recomputes the > inner list comprehension eight times, there are no duplicated > references. > [...] You are correct. I wrote that before testing, and then after testing wrote """The outer loop's control variable is never used in the inner loop, so there is no chance of conflict: each time the inner loop terminates the outer loop assigns the next value from its range - it isn't "adding one" to the variable, but merely calling an iterator's next() method."""
So I didn't do enough editing after testing to (in)validate my preconceptions. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ -- http://mail.python.org/mailman/listinfo/python-list