多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## copy与deepcopy区别 1、deepcopy: 将复制对象完全复制一边,并作为一个独立的新个体单元存在。即使改变被复制对象,deepcopy新个体也不会发生变化 2、copy: 不产生一个独立的对象,在原有数据上打一个标签,一个标签中数据被改变,另一个标签的数据随之变化。 **示例1** ``` import copy origin = [1, 2, [3, 4]]#origin 里边有三个元素:1, 2,[3, 4] Copy = copy.copy(origin) Deepcopy = copy.deepcopy(origin) #数值比较:==,地址比较:is print ("Copy == Deepcopy:"+str(Copy == Deepcopy))#判断Copy和Deepcopy数据是否相等 print ("Copy is Deepcopy:"+str(Copy is Deepcopy))#判断Copy和Deepcopy是否是一个地址数据 #结果Copy和Deepcopy数据相同,但已不再是同一个object origin[2][0] = "hey!"#改变其中一个元素 print ("origin :"+str(origin)) print ("Copy :"+str(Copy)) print ("Deepcopy:"+str(Deepcopy)) #结论:Deepcopy是复制为一个独立数据, # Copy是在一个数据加上一个新的标签,利用其中一个标签改变数据,则所有标签的数据都改变 ``` ![](https://img.kancloud.cn/29/68/2968616bf01af474aba36bf93cad30c9_249x125.png) **示例2** ``` import copy team = [{ 'name': 'James', 'height': 199 }] team1 = team team2 = copy.copy(team) team3 = copy.deepcopy(team) team[0]['name'] = 'Yaoming' print(team) print(team1) print(team2) print(team3) ``` ![](https://img.kancloud.cn/56/1f/561f1f86fffa6648c91b6ec76d077e45_300x79.png)