我创建的列表的深层副本与我期望的原始列表的对象不同。但是,此列表中包含的不可变对象仍然是相同的对象。
我创建了一个带有不可变对象的列表。然后,我将该列表深复制到一个新变量中。我希望这个新列表的对象具有相同的值(它们是相同的),但是要指向不同的对象,因为深层复制应该这样做。这没有按预期发生。有人可以向我解释为什么深层副本仍然引用下面的代码中的相同列表对象吗?
import copy
A = [1,2,3]
B = copy.deepcopy(A)
A[1] is B[1]
我希望它返回False,因为深层复制应该复制值,但为列表A的每个对象创建一个新对象。但是事实证明,此代码返回True。 A [1]和B [1]是相同的对象。