python中列表的拷贝
时间: 2024-10-29 17:02:51 浏览: 7
Python学习之路-Python中列表的复制拷贝
在Python中,列表的拷贝有多种方式,可以根据需要选择不同的复制策略:
1. **浅复制**(Shallow Copy):如果列表包含的是其他可变类型的元素(如列表、字典等),浅复制只会创建一个新的引用指向原列表的元素,不会复制这些元素本身。可以使用 `list()` 函数或切片操作 `[:]` 进行浅复制,例如:
```python
original_list = [1, [2, 3]]
shallow_copy = list(original_list) # 或 shallow_copy = original_list[:]
print(shallow_copy) # 输出:[1, [2, 3]]
# 修改原列表会影响浅复制
original_list[0] = 'a'
print(shallow_copy) # 输出:['a', [2, 3]]
```
2. **深复制**(Deep Copy):对于可变元素,会递归地复制其内容。Python标准库的 `copy` 模块提供了一个 `deepcopy()` 函数来进行深复制:
```python
from copy import deepcopy
original_list = [1, [2, 3]]
deep_copy = deepcopy(original_list)
print(deep_copy) # 输出:[1, [2, 3]]
# 改变深复制不影响原列表
deep_copy[0] = 'b'
print(original_list) # 输出:[1, [2, 3]]
```
阅读全文