什么是浅拷贝和深拷贝?Python中如何实现深拷贝,请举例说明。
时间: 2024-06-15 09:07:38 浏览: 125
浅拷贝和深拷贝是在编程中用于复制对象的两种不同方式。
浅拷贝是创建一个新的对象,该对象与原始对象共享内存中的一部分数据。换句话说,浅拷贝只复制了对象的引用,而不是实际的数据。当修改其中一个对象时,另一个对象也会受到影响。
Python中可以使用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]]
```
在上面的例子中,通过浅拷贝创建了list2,当修改list1中嵌套列表的元素时,list2也会受到影响。
深拷贝是创建一个新的对象,并递归地复制原始对象及其所有嵌套对象的数据。换句话说,深拷贝会复制所有的数据,而不是只复制引用。因此,当修改其中一个对象时,另一个对象不会受到影响。
Python中可以使用copy模块的deepcopy()函数来实现深拷贝。例如:
```python
import copy
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]]
```
在上面的例子中,通过深拷贝创建了list2,当修改list1中嵌套列表的元素时,list2不会受到影响。
阅读全文