Skip to main content
 首页 » 编程设计

python之你如何在 python 中进行长列表理解

2025年05月04日10fff_TT

例如:

>>> [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)]