import copy 中文
时间: 2023-11-17 19:08:50 浏览: 28
import copy
copy 是 Python 中的一个标准库,用于复制对象。它提供了浅复制和深复制两种复制方式。
浅复制(shallow copy):复制对象,包括其所有的子对象,但不包括子对象的子对象。即复制了对象的引用,而不是对象本身。
深复制(deep copy):复制对象及其所有的子对象,包括子对象的子对象。
下面是一个使用 copy 库进行浅复制和深复制的示例:
```python
import copy
# 浅复制
list1 = [1, 2, [3, 4]]
list2 = copy.copy(list1)
list1[2][0] = 5
print(list1) # [1, 2, [5, 4]]
print(list2) # [1, 2, [5, 4]],list1 和 list2 的子列表共享引用
# 深复制
list1 = [1, 2, [3, 4]]
list2 = copy.deepcopy(list1)
list1[2][0] = 5
print(list1) # [1, 2, [5, 4]]
print(list2) # [1, 2, [3, 4]],list1 和 list2 的子列表不共享引用
```
在上面的代码中,我们先创建了一个包含子列表的列表 list1,然后使用 copy 库的 copy() 函数进行浅复制,并将结果赋值给 list2;接着使用 copy 库的 deepcopy() 函数进行深复制,并将结果赋值给 list2。
在浅复制的示例中,我们将 list1 的子列表中的第一个元素修改为 5,然后分别输出 list1 和 list2,可以发现两个列表的子列表都被修改了。这是因为浅复制只复制了对象的引用,所以 list1 和 list2 的子列表共享了同一个引用。
在深复制的示例中,我们同样将 list1 的子列表中的第一个元素修改为 5,然后分别输出 list1 和 list2,可以发现只有 list1 的子列表被修改了,而 list2 的子列表没有被修改。这是因为深复制会递归地复制对象及其所有的子对象,所以 list1 和 list2 的子列表不共享引用。