我在列表理解上有以下代碼。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和列表理解的範圍規則。 –