copy与deepcopy区别

copy与deepcopy区别

1、deepcopy:

将复制对象完全复制一边,并作为一个独立的新个体单元存在。即使改变被复制对象,deepcopy新个体也不会发生变化

2、copy:

不产生一个独立的对象,在原有数据上打一个标签,一个标签中数据被改变,另一个标签的数据随之变化。

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是在一个数据加上一个新的标签,利用其中一个标签改变数据,则所有标签的数据都改变

copy与deepcopy区别_第1张图片

你可能感兴趣的:(学习记录,python,学习)