擅长:python、mysql、java
<p>您添加的引用不是列表的副本。
为了说明我们可以使用内置的<code>id</code>函数</p>
<p>将以下代码添加到循环的末尾</p>
<pre><code>print(id(adjacentList[0])
print(id(adjacentList[1])
print(id(adjacentList[2])
print(id(adjacentList[3])
print(id(currentPos))
</code></pre>
<p>您将发现<code>adjacentList</code>和<code>currentPos</code>中的四个元素具有相同的id,这与内存中的对象完全相同。你知道吗</p>
<p>不必使用许多方法中的一种附加<code>currentPos</code>的副本而不是引用(我只会提到一种方法,其他方法可以检查<a href="https://stackoverflow.com/questions/2612802/how-to-clone-or-copy-a-list">here</a>)</p>
<pre><code># Since Python 3.3
adjacentList.append(currentPos.copy())
</code></pre>