copy 和deepcopy 都能达到深copy, 他们的区别 deepcopy 能彻底, 属于递归copy
- copy相当于创建快捷方式;
- deepcopy相当于复制/另存为
看一下下面的例子:
import copy
a=[11,22,33]
b=[44,55,66]
c=[a,b]
#deepcopy
d=copy.deepcopy(c)
print(id(c))
print(id(d))
#使用copy
e=copy.copy(c)
print(id(c))
print(id(e))
#添加一个元素
b.append(77)
print(c)
print(d)
print(e)
看一下打印结果:
17528632
17254640
17528632
17529112
[[11, 22, 33], [44, 55, 66, 77]]
[[11, 22, 33], [44, 55, 66]]
[[11, 22, 33], [44, 55, 66, 77]]
由于copy不能递归,所以内部引用添加元素后会接着拷贝;