总结:不可变结构可以直接赋值等于深复制:string, tuple, 数值
简单子结构序列可以使用copy复制(元素无序列)
复杂子结构序列使用deepcopy复制(存在嵌套序列)
一、等于号赋值==贴标签
a=10 给10贴上标签a
b=a 给10再贴上标签b
a=15 给15贴上标签a, 将10上的标签a拿下来, 所以a的改变不影响b
print(a) #10
对于列表(元素不是复杂子结构):
a=[1,2,3]
b=a
a[0]=99 # 改变了标签内的内容, 而没有撕掉标签, 所以影响了b
print(b) #[99, 2, 3]
二、copy针对简单元素(非复杂子结构)的拷贝
a=[1,2,3]
b=a.copy() # b和a不是同时贴在[1,2,3]的标签, 而是分别各贴一个互不影响
a[0]=99 # 改变了a标签内的内容, 而没改变b标签内内容, 所以互不影响
print(b) #[1, 2, 3]
三、deepcopy针对复杂子结构
a=[[1,2],[3,4],5]
b=a.deepcopy() #b和a完全独立,互不影响,而简单的copy不能应对复杂子结构的复制