擅长:python、mysql、java
<p>使用<code>*</code>创建列表时,您只是复制对对象的引用,而不是复制实例本身。简短示例:</p>
<pre><code>>>> a = [["abv"]] * 3
>>> a
[['abv'], ['abv'], ['abv']]
>>> a[0].append(1)
>>> a
[['abv', 1], ['abv', 1], ['abv', 1]]
</code></pre>
<p>我正在创建一个包含对象<code>["abv"]</code>3次的列表。都是同一个物体,只在列表中出现了3次。
一旦我编辑了一个项目,它看起来像所有的项目都更新了,但实际上它是一样的。你知道吗</p>
<p>您需要像这样创建列表,以便为每个迭代创建一个新对象:</p>
<pre><code>>>> a = [["abv"] for _ in range(3)]
</code></pre>
<p>因此,您的代码应更改为:</p>
<pre><code>row += [[0] for x in range(i - len(row))]
</code></pre>