码迷,mamicode.com
首页 > 其他好文 > 详细

浅深copy

时间:2018-09-07 22:03:22      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:int   独立   前言   import   情况下   复制   epc   pre   情况   

前言

列表中的每个元素在内存中都是相互独立的,有自己的唯一标识符,可以通过 id() 函数来查看元素在内存中的唯一标识符。

浅深copy在列表数据量比较大的情况下,不建议使用,比较消耗内存资源。

 

浅深copy就是在内存中把一个列表复制一份,占用了两份内存空间:

浅copy

元素值未修改

两个列表的唯一标识符不一样,元素的唯一标识符是一样的(两个列表共享一份元素值)。

元素值修改后

元素的唯一标识符改变,但是有子列表的情况下,子列表元素唯一标识符不改变。

总结:并非完全独立的两个列表。

深copy

元素值未修改

两个列表的唯一标识符不一样,元素的唯一标识符是一样的,子列表的元素唯一标识符不一样。

元素值修改后

元素的唯一标识符不一样,子列表的元素唯一标识符不一样。

总结:完全独立的两个列表。

names1 = [xiaoming,[xiaobai,18]]
names2
= names1.copy() # 浅copy print(names1=,names1,唯一标识符是,id(names1)) print(names1列表的元素1的唯一标识符是,id(names1[0]),元素2的唯一标识符是,id(names1[1])) print(\n) print(浅copy后names2的执行结果:) print(names2=,names2,唯一标识符是,id(names2)) print(names2列表的元素1的唯一标识符是,id(names2[0]),元素2的唯一标识符是,id(names2[1])) print(\n) names2[0] = 小明 names2[1][0] = 小白 print(names2元素值修改后的执行结果:) print(names2=,names2,唯一标识符是,id(names2)) print(names2列表的元素1的唯一标识符是,id(names2[0]),元素2的唯一标识符是,id(names2[1])) import copy #深copy names3 = copy.deepcopy(names1) print(\n) print(深copy后names3的执行结果:) print(names3=,names3,唯一标识符是,id(names3)) print(names3列表的元素1的唯一标识符是,id(names3[0]),元素2的唯一标识符是,id(names3[1])) names3[0] = 小刚 names3[1][0] = 小李 print(\n) print(names3元素值修改后的执行结果:) print(names3=,names3,唯一标识符是,id(names3)) print(names3列表的元素1的唯一标识符是,id(names3[0]),元素3的唯一标识符是,id(names3[1])) names1= [xiaoming, [xiaobai, 18]] 唯一标识符是 2511119409800 names1列表的元素1的唯一标识符是 2511120629936 元素2的唯一标识符是 2511119409736 浅copy后names2的执行结果: names2= [xiaoming, [xiaobai, 18]] 唯一标识符是 2511120630024 names2列表的元素1的唯一标识符是 2511120629936 元素2的唯一标识符是 2511119409736 names2元素值修改后的执行结果: names2= [小明, [小白, 18]] 唯一标识符是 2511120630024 names2列表的元素1的唯一标识符是 2511121340616 元素2的唯一标识符是 2511119409736 深copy后names3的执行结果: names3= [xiaoming, [小白, 18]] 唯一标识符是 2511121609480 names3列表的元素1的唯一标识符是 2511120629936 元素2的唯一标识符是 2511121470152 names3元素值修改后的执行结果: names3= [小刚, [小李, 18]] 唯一标识符是 2511121609480 names3列表的元素1的唯一标识符是 2511121340792 元素3的唯一标识符是 2511121470152

 

浅深copy

标签:int   独立   前言   import   情况下   复制   epc   pre   情况   

原文地址:https://www.cnblogs.com/lipandeng/p/9606108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!