python中的深拷贝和浅拷贝
时间: 2023-07-08 19:46:07 浏览: 92
Python中的深拷贝和浅拷贝详解
Python中的深拷贝和浅拷贝是用来复制对象的方法。
浅拷贝是指创建一个新对象,但该对象的引用仍然指向原始对象的内存地址,因此更改新对象会影响原始对象。可以使用Python的copy()方法来实现浅拷贝。
深拷贝是指创建一个新对象并且在堆内存中为其分配新的内存地址,因此更改新对象不会影响原始对象。可以使用Python的deepcopy()方法来实现深拷贝。
下面是一个示例代码,演示了深拷贝和浅拷贝的区别:
```python
import copy
# 原始对象
original_list = [1, 2, [3, 4], 5]
# 浅拷贝
shallow_copy = copy.copy(original_list)
# 修改浅拷贝
shallow_copy[2][0] = 6
# 原始对象受到影响
print(original_list) # [1, 2, [6, 4], 5]
# 深拷贝
deep_copy = copy.deepcopy(original_list)
# 修改深拷贝
deep_copy[2][0] = 7
# 原始对象未受到影响
print(original_list) # [1, 2, [6, 4], 5]
```
在上面的示例中,我们使用copy()方法创建了一个浅拷贝对象,然后修改了浅拷贝对象中的嵌套列表中的元素,这也导致了原始对象被修改。然而,在使用deepcopy()方法创建深拷贝对象时,修改深拷贝对象不会影响原始对象。
阅读全文