Python中的浅拷贝和深拷贝
程序员文章站
2022-07-04 12:58:49
python中的浅拷贝和深拷贝是经常在面试中遇到的问题。 浅拷贝(copy): 拷贝父对象,不会拷贝对象的内部的 子对象 。 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 赋值 我们先看看赋值的实例 很明显,赋值引用,a 和 b 都指向同一个对 ......
python中的浅拷贝和深拷贝是经常在面试中遇到的问题。
- 浅拷贝(copy): 拷贝父对象,不会拷贝对象的内部的子对象。
- 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
赋值
我们先看看赋值的实例
a = {1:['a']} b = a a[1].append('b')
很明显,赋值引用,a 和 b 都指向同一个对象。
浅拷贝实例
a = {1:['a']} b = a.copy() a[1].append('b')
可以看到,浅复制不会拷贝字典中的list
对象。当我们向a的list
中添加值时,b中的也变了。
深拷贝实例:
import copy a = {1:['a']} b = copy.deepcopy(a) a[1].append('b')
可以看到,他们的对象和子对象都是相互独立的,当我们向a的list
中添加值时,b不会受影响。