我知道,由于 Python 的工作方式,x = []; y = x; x.append(1); y将打印[1]. 然而,反过来说,
z = [1,2]
temp = z
temp[1] = 3
z,temp
将打印([1,3],[1,3])。如果我理解正确,两者都z指向temp同一个列表,所以改变一个会改变另一个,因为列表是可变的。我怎样才能防止这种情况发生?也就是说,我想制作一个 for 循环,它将复制z到temp,以不同的方式更改它,并将其推送到队列中。为此,z必须始终包含基本数组,因此我需要更改temp不会更改z。
编辑:我尝试将 z 更改为元组,以便z=z,,然后调用z[0]而不是z. 这仍然不能解决我的问题。