Python深拷贝与浅拷贝
时间: 2023-07-08 22:40:35 浏览: 124
Python中的深拷贝和浅拷贝详解
Python中的深拷贝(deep copy)与浅拷贝(shallow copy)是在复制对象时使用的两种不同方法。
浅拷贝是指复制对象时仅复制对象本身,而不复制对象所引用的子对象。也就是说,新对象和原对象共享子对象。在Python中,可以使用copy模块中的copy()函数或者切片操作符[:]来实现浅拷贝。
深拷贝则是在复制对象时不仅复制对象本身,还会递归复制对象所引用的子对象。也就是说,新对象和原对象的子对象是互相独立的。在Python中,可以使用copy模块中的deepcopy()函数来实现深拷贝。
下面是使用浅拷贝和深拷贝的示例代码:
```
import copy
# 浅拷贝示例
a = [1, 2, [3, 4]]
b = copy.copy(a)
b[0] = 0
b[2][0] = 0
print(a) # [1, 2, [0, 4]]
# 深拷贝示例
a = [1, 2, [3, 4]]
b = copy.deepcopy(a)
b[0] = 0
b[2][0] = 0
print(a) # [1, 2, [3, 4]]
```
可以看到,在使用浅拷贝时,修改子对象会影响原对象;而在使用深拷贝时,子对象和原对象互不影响。
阅读全文