python中深浅copy讲解一下
时间: 2025-01-29 12:19:50 浏览: 35
在Python中,深浅拷贝是用于复制数据结构的两种不同方法,主要用于处理列表、字典等可变对象。理解它们的区别对于避免不必要的副作用非常重要。
1. **浅拷贝(Shallow Copy)**:
浅拷贝会创建一个新的对象,但是对于对象中的元素,仍然使用引用。也就是说,新对象和原对象共享内部的子对象。
```python
import copy
original_list = [[1, 2], [3, 4]]
shallow_copied_list = copy.copy(original_list)
# 修改原始列表中的子列表
original_list[0][0] = 'a'
print("Original list:", original_list)
print("Shallow copied list:", shallow_copied_list)
```
输出:
```
Original list: [['a', 2], [3, 4]]
Shallow copied list: [['a', 2], [3, 4]]
```
可以看到,修改原始列表中的子列表会影响浅拷贝的列表,因为它们共享同一个子列表。
2. **深拷贝(Deep Copy)**:
深拷贝会创建一个新的对象,并且递归地复制所有子对象。也就是说,新对象和原对象完全独立,互不影响。
```python
import copy
original_list = [[1, 2], [3, 4]]
deep_copied_list = copy.deepcopy(original_list)
# 修改原始列表中的子列表
original_list[0][0] = 'a'
print("Original list:", original_list)
print("Deep copied list:", deep_copied_list)
```
输出:
```
Original list: [['a', 2], [3, 4]]
Deep copied list: [[1, 2], [3, 4]]
```
可以看到,修改原始列表中的子列表不会影响深拷贝的列表,因为它们是完全独立的。
阅读全文
相关推荐

















