python列表类型转换和设置值

python列表类型转换和设置值,python,list,casting,Python,List,Casting,我在试这个 >>> 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 = [[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]?

中,
列表(x)
创建了一个新的顶级列表,因此更改其顶级值(如
10.5
)不会传播到
x
。另一方面,内部列表是一个引用,因此对它的更改在包含它的所有容器中共享,因为它们都包含相同的对象。如果您想要一份单独的
x
,请使用