[docs] [issue21739] Add hint about expression in list comprehensions (https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions)
R. David Murray
report at bugs.python.org
Thu Jun 12 21:51:52 CEST 2014
R. David Murray added the comment:
In 3.x a list comprehension (like a generator expression in 2.x) *is* a separate block:
>>> [x for x in range(3)]
[0, 1, 2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
I note that this is not in fact mentioned in the python3 version of the tutorial; there it still implies that it is completely equivalent to the unrolled if statement, which would imply it *was* in the same scope.
IMO the 2.7 tutorial is complete in the sense that the "is equivalent to" example is clearly in the same scope, while the python3 tutorial is missing a note that the comprehension is its own scope. Given the fact that it is *different* between the two, I wonder if it would be appropriate to add a note (footnote?) to that effect to the 2.7 tutorial. There is such a footnote in the corresponding part of the language reference.
versions: +Python 3.4, Python 3.5
Python tracker <report at bugs.python.org>
More information about the docs