擅长:python、mysql、java
<p>当您通过执行</p>
<pre><code>challanging_route = best_route
</code></pre>
<p>您没有创建现有列表的不同副本:如果您更改两个列表(<code>challanging_route</code>或<code>best_route</code>)中的任何一个列表中的元素,它将在另一个列表中执行相同的更改。你知道吗</p>
<p>你想做的可能是复制你的清单:</p>
<pre><code>challanging_route = best_route[:]
</code></pre>
<p>编辑:最重要的是,你的<code>swapPositions</code>改变了它的<code>list</code>参数,这意味着当你做<code>swapPositions(challanging_route,rand_index,rand_index2)</code>时它实际上改变了原来的<code>challanging_route</code>。因此,不需要将其分配给新列表<code>a</code>。你知道吗</p>
<p>为了清楚起见,您可能应该</p>
<pre><code>a = swapPositions(challanging_route,rand_index,rand_index2)
challanging_route = a
</code></pre>
<p>简单地</p>
<pre><code>swapPositions(challanging_route,rand_index,rand_index2)
</code></pre>