<p>我试图理解以下python代码片段:</p>
<pre><code>lst = [[c for c in range(r)] for r in range(3)] #line1
for x in lst: #line2
for y in x: #line3
if y < 2: #line4
print('*', end='') #line5
</code></pre>
<p>我知道range(3)等函数本身的含义,但我不了解上下文。看到这段嵌套的代码有点复杂。“lst”的第一行最容易混淆。为什么第一条生产线会产生以下输出:</p>
<pre><code>[[], [0], [0, 1]]
</code></pre>
<p>那么line2和line3是如何协同工作的呢?提前谢谢你的回答。欢迎提出任何意见!你知道吗</p>
<p>代码段创建了一个列表列表,其中大小(以及项的实际值)取决于第一级列表中的索引。你知道吗</p>
<p>代码段与</p>
<pre><code>result = []
for k in range(3):
result.append([])
for v in range(k):
result[k].append(v)
print(result)
=>>>
[[], [0], [0, 1]]
</code></pre>