我正在尝试这个
>>> x = [[1, 2, 3], 10.5]
>>> z = list(x)
>>> z[1] = 10.6
>>> z
[[1, 2, 3], 10.6]
>>> x
[[1, 2, 3], 10.5]
>>> z[0][2] = 5
>>> z
[[1, 2, 5], 10.6]
>>> x
[[1, 2, 5], 10.5]
为什么变化反映在x [0] [2]中?同样不在x [1] ???
答案 0 :(得分:2)
list(x)
创建了一个新的顶级列表,因此更改其顶级值(如10.5
)将不会传播到x
。另一方面,内部列表是一个引用,因此它的更改在包含它的所有容器之间共享,因为它们都包含完全相同的对象。如果您想要x
的单独副本,请使用copy.deepcopy。