看这两个列表推导式,都包含了两个for子句。我们发现,如果for子句的顺序正确,Python会混淆。但如果它们的顺序颠倒了,Python可以处理。为什么呢?
Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> [x + y for x in range(y) for y in range(4)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined
>>> [x + y for y in range(4) for x in range(y)]
[1, 2, 3, 3, 4, 5]
>>>
for:
循环的顺序相匹配)。我对“错误”和“正确”的问题感到困扰。 - user395760