Python内置的集合是可变的,如列表、数据集和集合都可以通过在现有集合上调用它们的原来函数进行复制:
new_list = list(original_list)
new_dict = dict(original_dict...可以尝试将一个新的子列表添加到原始(xs),然后检查确保此修改不影响副本(ys):
>>> xs.append(['new sublist'])
>>> xs
[[1, 2, 3], [4, 5, 6]...但是,因为我们只创建了一个浅层的副本,ys中存储的原始子对象引用xs.
这些没有复制,只是在复制的列表中再次被引用。
因此,当在xs中,此修改反映在ys也是一样,那是因为两个列表共享相同的子对象。...将看到它们看起来是相同的--就像前面的示例:
>>> xs
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> zs
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
但是,如果对原始对象中的一个子对象进行了修改...(xs),将看到此修改不会影响深层副本(zs).