python的copy
时间: 2023-10-16 14:30:50 浏览: 132
在 Python 中,有两种复制(拷贝)方式:浅复制和深复制。
浅复制(shallow copy)是创建一个新的对象,但是这个对象中的元素是原始对象的引用。也就是说,当原始对象中的元素发生变化时,浅复制的对象中的元素也会发生相应的变化。
可以使用 copy 模块中的 copy() 函数来进行浅复制。
例如:
```python
import copy
list1 = [1, 2, [3, 4]]
list2 = copy.copy(list1)
print(list1) # [1, 2, [3, 4]]
print(list2) # [1, 2, [3, 4]]
list1[0] = 0
list1[2][0] = 0
print(list1) # [0, 2, [0, 4]]
print(list2) # [1, 2, [0, 4]]
```
深复制(deep copy)是创建一个新对象,并且递归地复制原始对象中的元素。也就是说,当原始对象中的元素发生变化时,深复制的对象中的元素不会发生相应的变化。
可以使用 copy 模块中的 deepcopy() 函数来进行深复制。
例如:
```python
import copy
list1 = [1, 2, [3, 4]]
list2 = copy.deepcopy(list1)
print(list1) # [1, 2, [3, 4]]
print(list2) # [1, 2, [3, 4]]
list1[0] = 0
list1[2][0] = 0
print(list1) # [0, 2, [0, 4]]
print(list2) # [1, 2, [3, 4]]
```
需要注意的是,深复制可能会导致循环引用的问题,需要特别处理。
阅读全文