浅拷贝和深拷贝
时间: 2023-07-08 21:07:11 浏览: 42
Python中的深拷贝和浅拷贝详解
浅拷贝和深拷贝都是对象复制的方式。浅拷贝只复制了对象的引用,而不是对象本身,因此原始对象和副本对象会共享同一个内存地址空间,修改其中一个对象的属性值会影响到另一个对象的属性值。深拷贝则会复制整个对象及其所有属性,因此原始对象和副本对象是完全独立的,互不影响。
示例代码:
```
# 浅拷贝示例
original_list = [1, 2, [3, 4]]
shallow_copy = original_list.copy()
shallow_copy[2].append(5)
print(original_list) # [1, 2, [3, 4, 5]]
print(shallow_copy) # [1, 2, [3, 4, 5]]
# 深拷贝示例
import copy
original_list = [1, 2, [3, 4]]
deep_copy = copy.deepcopy(original_list)
deep_copy[2].append(5)
print(original_list) # [1, 2, [3, 4]]
print(deep_copy) # [1, 2, [3, 4, 5]]
```
在上述示例中,浅拷贝只复制了原始列表的引用,因此修改副本列表的第三项也会影响到原始列表的第三项。而深拷贝则完全复制了原始列表及其内部的所有对象,因此修改副本列表的第三项不会对原始列表产生影响。
阅读全文