我知道,由于 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
. 这仍然不能解决我的问题。