擅长:python、mysql、java
<p>因为在Python中,一切都是引用。当您将值追加到数组时,实际上是将引用添加到内存中存储值的位置。在</p>
<p>例如,您已经将列表分配给第一个元素。在下一次迭代中重新洗牌此列表时,您将更改内存中的值。因此,访问在上一步中附加的元素时将要使用的值也将更改。在</p>
<p>要解决这个问题,请尝试附加<code>copy.copy(newval)</code>,而不是仅仅<code>newval</code>(别忘了<code>import copy</code>)</p>
<p>以下是相应更改的代码:</p>
<pre><code>import copy
parts = [[],[]]
while len(parts[-1]) < 2:
newval = random.choice([[1,2,3,4],[5,6,7,8]])
for part in parts:
random.shuffle(newval)
part.append(copy.copy(newval))
</code></pre>