擅长:python、mysql、java
<p>虽然您的代码无效,但您遇到的“why”不受影响(我假定k[0][0]和h[0][0]都应该是<code>=0</code>,而不是“X”)。你知道吗</p>
<p>这与这三行的顺序有关:</p>
<pre><code>row = [sign]*size // A
for i in range(size): // B
gPlan.append(row) // C
</code></pre>
<p>在第一种情况下,您正在执行BAC,每次迭代都会产生一个新的列表。当i=0时,创建一个列表并将其附加到主列表;当i=1时,创建一个新列表,依此类推。但是在第二种情况下,你在做ABC——你创建一个列表,然后多次附加相同的列表。由于列表是可变的,这会导致一个列表发生更改,这似乎会更改所有列表(因为它们都是对内存中同一对象的引用)。你知道吗</p>