什么是浅拷贝和深拷贝?Python中如何实现深拷贝,请举例说明。
时间: 2024-06-15 09:07:39 浏览: 144
浅拷贝和深拷贝是在编程中用于复制对象的两种不同方式。
浅拷贝是创建一个新的对象,该对象与原始对象共享内存地址中的数据。换句话说,浅拷贝只复制了对象的引用,而不是实际的数据。当修改其中一个对象时,另一个对象也会受到影响。
深拷贝是创建一个新的对象,并将原始对象中的所有数据复制到新对象中。深拷贝是完全独立的,修改其中一个对象不会影响另一个对象。
在Python中,可以使用copy模块中的copy()函数来实现浅拷贝,使用copy模块中的deepcopy()函数来实现深拷贝。
下面是一个示例:
```python
import copy
# 原始列表
original_list = [1, 2, [3, 4]]
# 浅拷贝
shallow_copy = copy.copy(original_list)
# 深拷贝
deep_copy = copy.deepcopy(original_list)
# 修改原始列表中的元素
original_list[0] = 5
original_list[2][0] = 6
print("原始列表:", original_list)
print("浅拷贝:", shallow_copy)
print("深拷贝:", deep_copy)
```
输出结果为:
```
原始列表: [5, 2, [6, 4]]
浅拷贝: [5, 2, [6, 4]]
深拷贝: [1, 2, [3, 4]]
```
可以看到,浅拷贝的列表和原始列表共享内部列表的引用,所以修改其中一个列表的内部元素会影响另一个列表。而深拷贝创建了一个完全独立的对象,所以修改原始列表不会影响深拷贝后的列表。
阅读全文