python列表拷贝引用
时间: 2024-10-24 14:01:22 浏览: 10
Python中的引用和拷贝实例解析
在Python中,列表有两种不同的方式可以创建拷贝:浅复制和深复制。
1. **浅复制**(Shallow Copy):当你使用 `list.copy()` 或者直接赋值操作 `a = b` 创建一个新的列表时,实际上是创建了一个新的引用指向原来的列表内容。这意味着如果原列表中有可变类型的元素(如其他列表或字典),修改这些元素会影响到浅复制后的列表。
```python
a = [1, [2, 3]]
b = a # 这里b是一个浅复制,指向的是a的第一个元素
a[1].append(4) # 修改了原列表
print(b) # 输出: [1, [2, 3, 4]],因为a和b都指向相同的内部列表
```
2. **深复制**(Deep Copy):如果你需要完全独立的副本,避免修改原列表影响到拷贝,可以使用 `copy.deepcopy()` 函数。这个函数会递归地复制嵌套的数据结构。
```python
from copy import deepcopy
a = [1, [2, 3]]
c = deepcopy(a) # 深复制,得到全新的数据结构
a[1].append(4)
print(c) # 输出: [1, [2, 3]], c不受影响,因为它有自己的独立副本
```
阅读全文