擅长:python、mysql、java
<p>让我们看看你写的东西</p>
<pre><code>a = [["?" * 6] *6]
</code></pre>
<p>中间位<code>"?" * 6</code>是一个由6个问号组成的字符串。当你用方括号括起来时,你会得到一个包含这个字符串的列表,所以</p>
<pre><code>['??????']
</code></pre>
<p>然后将该列表乘以6,得出:</p>
<pre><code>['??????', '??????', '??????', '??????', '??????', '??????']
</code></pre>
<p>你把整件事都放在另一张单子上</p>
<pre><code>[['??????', '??????', '??????', '??????', '??????', '??????']]
</code></pre>
<p>或者,您可能打算这样做:</p>
<pre><code>[['?'] * 6] * 6
</code></pre>
<p>这确实给了你一个你想要的列表</p>
<pre><code>[['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?'], ['?', '?', '?', '?', '?', '?']]
</code></pre>
<p>然而,这实际上是另一个列表中的一个内部列表<code>['?', '?', '?', '?', '?', '?']</code>六次。因此,如果您尝试修改内部元素,您会发现每个内部列表都被修改</p>
<p>您最好使用列表理解或中间立场,即:</p>
<pre><code>a = [['?'] * 6 for _ in range(6)]
</code></pre>