创建没有链接记忆的列表的更好方法

时间:2016-06-29 12:34:45

标签: python list memory init iterable

x=({1,2},{2,3},{3,4})  # a tuple of sets
y=list(x)              # list based on x
y[1].remove(2)
print 'x', x, 'id', id(x)    # ({1, 2}, {3}, {3, 4})
print 'y', y, 'id', id(y)    # [{1, 2}, {3}, {3, 4}]
# elements in x and y share a same memory
# id(x[i]) = id(y[i])
for element in x:
    print element, 'id', id(element)
for element in y:
    print element, 'id', id(element)

嗨,我需要一种更好的方法来创建一个没有链接记忆的列表(或其他可迭代类型)。请找到上面的Python代码。我打算基于一组元组创建一个新列表,并尝试在操作列表y时保持元组x不变。但是,元素(它们是集合)共享相同的内存(由它们的id表示)。当元素类型为list,tuple,set时,我发现了这个。有没有明智而直接的方法来避免这种情况?提前谢谢!

0 个答案:

没有答案