python高级编程之深拷贝与浅拷贝
1. 浅拷贝: 浅拷贝是对于一个对象的顶层拷贝
。简单理解:拷贝了引用,并没有拷贝内容
2. 深拷贝: 深拷贝是对于一个对象所有层次的拷贝(递归)
3. copy
copy.copy
完成浅拷贝copy.deepcopy
完成深拷贝=
表示指向引用
4. copy.copy
copy.copy
对于可变类型,会进行浅拷贝copy.copy
对于不可变类型(元组),不会拷贝,仅仅是指向
5. 引用还是指向
- 如果用
copy.copy
、copy.deepcopy
对一个全部是不可变类型的数据进行拷贝,都是指向引用 - 如果拷贝的是一个拥有不可变类型的数据,即使元组最顶层,
copy.deepcopy
依然是深拷贝,而copy.copy
还是指向引用
6. 其他方式拷贝
d=c[:]
与d =copy.copy(c)
都属于浅拷贝