我在列表理解上有以下代码。UnboundLocalError:分配前引用的局部变量'y'
x = 2
y = 3
[x*y for x in range(x) for y in range(y)]
这是给我下面的错误
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
[x*y for x in range(x) for y in range(y)]
File "<pyshell#35>", line 1, in <listcomp>
[x*y for x in range(x) for y in range(y)]
UnboundLocalError: local variable 'y' referenced before assignment
然而,下面的代码工作。
[x*y for x in range(x)]
[0, 5]
对列表理解中的第二个for
循环是否有任何作用域规则?
我正在使用Python 3.6。
@Chris_Rands:可能的重复帖子不讨论UnboundLocalError和列表理解的范围规则。 –