项目在列表中有相同的存储器位置
问题描述:
我有以下代码:项目在列表中有相同的存储器位置
a = [1,2]
b = list(a)
print id(a[0])
print id(b[0])
列表a和b具有不同的存储位置。但它们中的元素具有相同的位置。我怎么能让这两个不同。
答
list
创建一个新列表,但不会执行深层复制,即克隆里面的所有元素。
你需要的是一个clone
(也被称为deep copy
)。在Python中看到好的替代方案(和基准测试)的答案:How to clone or copy a list?。