深copy和浅copy区别
时间: 2023-09-23 19:04:26 浏览: 76
OC-深拷贝(mutablecopy)与浅拷贝(copy)的区别
深拷贝(deep copy)和浅拷贝(shallow copy)是Python中常用的拷贝方法,二者的区别如下:
浅拷贝:拷贝一个对象的引用,新对象和原对象共享内存,修改其中一个对象会影响另一个对象。
深拷贝:拷贝一个对象及其引用的所有对象,新对象和原对象不共享内存,修改其中一个对象不会影响另一个对象。
在Python中,可以使用copy模块的copy()函数进行浅拷贝,使用deepcopy()函数进行深拷贝。例如:
```python
import copy
# 浅拷贝
a = [1, 2, [3, 4]]
b = copy.copy(a)
a[2][0] = 5
print(a) # [1, 2, [5, 4]]
print(b) # [1, 2, [5, 4]]
# 深拷贝
c = copy.deepcopy(a)
a[2][0] = 3
print(a) # [1, 2, [3, 4]]
print(c) # [1, 2, [5, 4]]
```
以上代码中,a为原对象,b为浅拷贝的新对象,c为深拷贝的新对象。修改a中嵌套列表的值后,b会跟着变化,但是c不会受影响。
阅读全文