擅长:python、mysql、java
<p>Square是一个包含六个引用的列表,它们都指向同一个<code>square</code>列表。修改任何这些<code>square</code>引用将影响所有行。您可以通过查看行的id值来确认这一点:</p>
<pre><code>a = one()
print id(a[0])
print id(a[1])
</code></pre>
<p>结果:</p>
^{pr2}$
<p>不要生成一个<code>square</code>并将其追加六次,而是生成六个<code>square</code>并将每一个追加一次。在</p>
<pre><code>def one():
Square = []
for y in range(6):
square = []
for x in range(6):
square.append(None)
Square.append(square)
return Square
</code></pre>
<p>现在这些行都将引用不同的列表。在</p>
<pre><code>a = one()
print id(a[0])
print id(a[1])
#result:
#37827976
#37829192
</code></pre>
<hr/>
<p>我还建议更改<code>square</code>的名称,因为有两个变量名只在大小写上有所不同,这很令人困惑。在</p>
<pre><code>def make_matrix():
matrix = []
for y in range(6):
row = []
for x in range(6):
row.append(None)
matrix.append(row)
return matrix
</code></pre>