Python基础(42) - 浅拷贝和深拷贝
2020-03-12 本文已影响0人
xianling_he
两者的区别
- copy: 浅拷贝,只复制深层对象的引用
- deepcopy: 深拷贝,复制深层对象本身
copy deepcopy 的使用
- 代码如下:
import copy
a = [1,2,3,4,['a','b']]
c = copy.copy(a) #浅拷贝
d = copy.deepcopy(a) #深拷贝
print(c)
print(d)
print('-'*20)
a[4][0] = 'x'
print(c)
print(d)
hexianling.png
总结
- a[4][0] = 'x' 将深层对象的 a元素替换成x ,如果使用浅拷贝(copy) 会将a的值改成x
- 如果深拷贝(deepcopy) 是不会将改变的值作为输出,它拷贝的是深层的原来元素[a,b]
- 所以深拷贝的话跟修改后的值无影响,deepcopy使用的还是原来的值
- copy只复制深层对象的引用,而deepcopy会复制深层对象本身