深复制,浅复制解析

深复制,浅复制解析

深复制,浅复制只会出现嵌套列表中出现

浅复制:只复制父对象,不会复制对象内部的子对象引用的对象

深复制: 复制父对象和子对象

深复制需要先导入copy模块,然后才能使用
import copy
copy.deepcopy(list)
列表在嵌套一个有名字的列表时,更像是在引用这个对象,例如:
a = [1,2,3]
b = [a,4,5,6]
在b输出显示时,系统把会a解析成列表显示出来,如:
[[1,2,3],4,5,6]
但系统里面记录的始终是 [a,4,5,6] ,a只是一个引用对象而已。

所以在复制时,a也是作为一个可引用的对象复制给另外一个列表,
可以理解为a只是一个快捷方式,再怎么复制也只是复制一个快捷方式而已,
这就是所为的浅复制。

而深复制呢,就是把a的内容完完全全复制到一个新的列表里面,
换成另外一个思路就是:
复制时,系统把a这个快捷方式所指的文件,复制给了另外一个对象。

总结:
浅复制:只复制被引用的对象(快捷方式)
深复制:复制被引用对象的内容(文件)

猜你喜欢

转载自blog.csdn.net/q627794135/article/details/78765769