python 深拷贝 浅拷贝
时间: 2023-09-14 11:02:54 浏览: 95
Python中的深拷贝和浅拷贝详解
Python中的深拷贝和浅拷贝是关于对象复制的两个概念。
浅拷贝是创建一个新的对象,新对象的内容是原始对象的引用。也就是说,新对象与原始对象共享内存地址,当其中一个对象发生变化时,另一个对象也会受到影响。在Python中,可以使用`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] = 5
list1[2][0] = 6
print(list1) # [5, 2, [6, 4]]
print(list2) # [1, 2, [6, 4]]
```
深拷贝是创建一个新的对象,新对象的内容是原始对象的副本。也就是说,新对象与原始对象完全独立,互不影响。在Python中,可以使用`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] = 5
list1[2][0] = 6
print(list1) # [5, 2, [6, 4]]
print(list2) # [1, 2, [3, 4]]
```
从示例中可以看出,浅拷贝只复制了原始对象的引用,而深拷贝复制了所有对象及其内容。因此,对于复杂的嵌套对象,深拷贝是一种更安全可靠的方式。
阅读全文