深拷贝和浅拷贝
1.含义:
- 浅拷贝最多拷贝对象的一层
- 深拷贝可能拷贝对象的多层
- import copy
- 浅拷贝使用copy.copy函数 b = copy.copy(a)
- 深拷贝使用copy.deepcopy函数 b = copy.deepcopy(a)
# python中默认的拷贝方式是浅拷贝
# 拷贝速度快,效率高,空间少
2. 针对不同类型数据的拷贝区别
2.1.不可变类型的浅拷贝说明:
- 通过上面的执行结果可以得知,不可变类型进行浅拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用。
2.2可变类型的拷贝
2.2.1
如果可变类型中都为不可变类型元素,则无论深浅拷贝,都会开启一个独立空间,即地址不同,同时数据保持独立性,即改变其中一个元素,另外一个不会变化。
2.2.2
如果可变类型中存在可变类型元素,则深拷贝会开启一个独立空间,即地址不同,同时数据保持独立性。
浅拷贝,都会开启一个独立空间,即地址不同,但数据不会保持独立性,即改变可变类型元素的内部元素时,另外一个浅拷贝文件也会变化。
浙公网安备 33010602011771号