python 深度复制
时间: 2023-10-19 22:34:43 浏览: 98
在Python中,深度复制(deep copy)是指通过copy.deepcopy()方法来实现对象的完全拷贝,包括父对象和子对象。深度复制后的对象与原对象互不相关,对其中一个对象的修改不会影响到另一个对象。深度复制的实现原理是递归地复制对象及其子对象,确保每个对象都是独立的副本。
例如,对于一个包含列表和元组的对象list1,使用copy.deepcopy(list1)进行深度复制后,得到的list2是一个完全独立的副本。对list1进行修改不会影响到list2,同样,对list2的修改也不会影响到list1。
具体实现的代码如下所示:
```python
import copy
list1 = [[1, 2], (30, 40)]
list2 = copy.deepcopy(list1)
list1.append(100)
list1 = (50, 60)
print("list1:", list1)
print("list2:", list2)
```
输出结果为:
```
list1: [[1, 2, 3], (30, 40, 50, 60), 100]
list2: [[1, 2], (30, 40)]
```
可以看到,list1和list2在进行深度复制后,彼此之间是完全独立的。对list1的修改不会影响到list2,反之亦然。
总结起来,深度复制是一种完全拷贝父对象和子对象的方法,确保每个对象都是独立的副本,可以通过copy.deepcopy()方法来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
#### 引用[.reference_title]
- *1* *4* [python中浅拷贝和深度拷贝教程](https://blog.csdn.net/qdPython/article/details/127752661)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Python 深拷贝和浅拷贝详解](https://blog.csdn.net/qq_40630902/article/details/119278072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文