python深拷贝浅拷贝
时间: 2023-07-23 14:15:16 浏览: 117
Python中的深拷贝和浅拷贝是用来复制对象的概念。
浅拷贝是创建一个新的对象,该对象的内容是原始对象的引用。这意味着如果原始对象发生改变,浅拷贝的对象也会受到影响。可以使用内置的`copy`模块中的`copy()`函数来进行浅拷贝。
例如:
```python
import copy
list1 = [1, 2, [3, 4]]
list2 = copy.copy(list1)
list1[0] = 100 # 修改原始对象
list1[2][0] = 300 # 修改原始对象中的嵌套列表
print(list1) # [100, 2, [300, 4]]
print(list2) # [1, 2, [300, 4]],浅拷贝的对象受到了影响
```
深拷贝是创建一个新的对象,并递归地复制原始对象及其所有嵌套的对象。这意味着即使原始对象发生改变,深拷贝的对象也不会受到影响。同样可以使用`copy`模块中的`deepcopy()`函数进行深拷贝。
例如:
```python
import copy
list1 = [1, 2, [3, 4]]
list2 = copy.deepcopy(list1)
list1[0] = 100 # 修改原始对象
list1[2][0] = 300 # 修改原始对象中的嵌套列表
print(list1) # [100, 2, [300, 4]]
print(list2) # [1, 2, [3, 4]],深拷贝的对象不受影响
```
总结起来,浅拷贝只复制对象的引用,而深拷贝递归地复制了整个对象及其嵌套的对象。根据需求选择适当的拷贝方式可以确保对象的复制行为符合预期。
阅读全文