【发布时间】:2021-12-26 18:27:48
【问题描述】:
x=[3,6,9,[12]]
y=list(x)
x[3][0]=50
x[1]=25
print(y)
代码的输出是[3, 6, 9, [50]]
为什么 12 变成了 50,而 6 没有变成 25?
【问题讨论】:
-
好的,所以你必须阅读浅拷贝和深拷贝。制作了一个新列表并将值复制到 y 中,但未制作对 [12] 列表的引用。假设这个列表[12]的变量保存地址不是[12]。因此,创建了一个新变量,其中包含该列表 [12] 的相同地址。由于这种变化,它的值会因为相同的地址引用而改变列表的值,而不是因为它们是深拷贝。
-
y = x 而不是 y = list(x) 给出你想要的行为。
-
你能让@ShobhitTewari 更清楚一点吗?我不清楚
标签: python