例如:
>>> [x for x in range(y) for y in range(z) for z in range(3)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined
我希望这与以下行为相同:
>>> a=[]
>>> for z in range(3):
... for y in range(z):
... for x in range(3):
... a.append(x)
...
>>> a
[0, 1, 2, 0, 1, 2, 0, 1, 2]
但事实并非如此。为什么?
最佳答案
如果您颠倒循环的顺序,您当前的理解将起作用:
[x for z in range(3) for y in range(z) for x in range(3)]
关于python - 你如何在 python 中进行长列表理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153599/