【发布时间】:2018-12-16 18:50:19
【问题描述】:
我正在努力理解这个列表理解,但还有更多问题:
x = [[c for c in range(r)] for r in range(3)]
print(x)
>>>[[],[0],[0,1]]
据我所知,这将被相应地分解:
x = []
for r in range(3):
for c in range(r):
x.append(c)
print(x)
>>>[0,0,1]
但是,我的解压版本不会像列表理解那样返回列表列表。 我最大的问题是:
1) 在这种情况下 range(r) 会变成什么?
2) 如何纠正我的 for 循环以产生与列表理解相同的输出?
3) 为什么列表推导式会列出它所做的列表?
【问题讨论】:
-
您忘记在外部循环的每次迭代中初始化内部列表。
-
为什么不
for r in range(3): x.append(list(range(r))) -
为什么不直接使用推导并删除循环?
标签: python list-comprehension nested-loops