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

标签 python list-comprehension

例如:

>>> [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/

相关文章:

python - 使用Python编辑列表中的时间戳?使用函数将 POSIX 转换为可读格式

python - 列表:查找第一个索引并计算列表列表中特定列表的出现次数

Python 错误 : Unexpected end of data while reading a . tar 文件

python - 如何使用 sendgrid API 在 django 中使用设计的模板?

python - rpy2 在 debian 上安装问题

python - 使用 zip 和列表理解来创建字典

python - 如果列表中的项目位于另一个列表中,则将其从列表中删除,同时保留重复项 - Python

python - 如何将参数传递给 Scikit-Learn Keras 模型函数

python - 检查字符是否等于python中的引号

python - 通过理解避免将重复项插入 Python 列表