简述python中深拷贝和浅拷贝并举例说明
时间: 2023-09-07 22:16:04 浏览: 102
毕业设计,课程设计-基于python+django的视频点播网站,视频点播系统
在 Python 中,深拷贝(deep copy)和浅拷贝(shallow copy)是用于复制对象的两种不同方式。
浅拷贝是创建一个新的对象,该对象具有原始对象的引用。这意味着新对象只是原始对象的一个副本,如果修改新对象,原始对象也会受到影响。浅拷贝可以使用 `copy()` 方法来实现。
深拷贝是创建一个全新的对象,该对象与原始对象完全独立,修改其中一个不会影响另一个。深拷贝可以使用 `deepcopy()` 函数来实现,该函数位于 `copy` 模块中。
以下是一个简单的示例来说明深拷贝和浅拷贝的区别:
```python
import copy
# 原始列表
original_list = [1, 2, [3, 4]]
# 浅拷贝
shallow_copy = copy.copy(original_list)
# 深拷贝
deep_copy = copy.deepcopy(original_list)
# 修改浅拷贝的第三个元素
shallow_copy[2][0] = 5
# 修改深拷贝的第三个元素
deep_copy[2][0] = 6
print("原始列表:", original_list)
print("浅拷贝:", shallow_copy)
print("深拷贝:", deep_copy)
```
输出结果如下:
```
原始列表: [1, 2, [3, 4]]
浅拷贝: [1, 2, [5, 4]]
深拷贝: [1, 2, [6, 4]]
```
可以看到,修改浅拷贝的第三个元素会影响原始列表,而修改深拷贝的第三个元素不会影响原始列表。这是因为浅拷贝只复制了对象的引用,而深拷贝创建了一个全新的对象。
阅读全文