让这个代码

x = [1, 2, 3, 4, 5, 6]
y = x
y = y + []


yx的深层副本还是浅层副本?

最佳答案

它是一个浅表副本,但是在这种情况下,浅表副本和深表副本之间没有区别,因为列表内的整数是不可变的。实际上,它们都足够小,以至于标准Python解释器(cpython)会缓存它们(每个1是同一个对象),因此深层副本的内容与浅层副本的内容完全相同(内容将是身份相同,而不仅仅是价值)。

关于python - 是y = y + []是深拷贝还是浅拷贝?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36434901/

10-12 19:13