Python中的深浅拷贝

一、浅拷贝

浅拷贝:  只是复制最外层的结构,除最外层其余的直接将其地址引用过来,原始数据和拷贝后数据修改会互相影响。

1、定义数据

a作为原始对象,b作为a的浅拷对象,可以看到b是重新开辟了一块内存地址。

 2、修改外层结构

修改原始对象a的外层结构,观察b的变化

 可以看到a修改了外层结构,但是b并没有改变,所以说只是复制了最外层的结构

同理修改b也不会影响a:

 3、修改内层子对象

修改拷贝对象的内部的子对象[3,4]

  发现修改了内层子对象后会互相影响

二、深拷贝

理解了浅拷贝,深拷贝很好理解 。

深拷贝就是在内存中重新开辟一块空间,不管数据结构有多复杂,只要数据发生改变,就重新开辟一块内存空间把内容复制下来,直到最后一层。

两者之间互不影响。

原文地址:https://www.cnblogs.com/gcgc/p/12469967.html