首页 > 其他 > 详细

深浅拷贝

时间:2016-06-27 16:58:12      阅读:229      评论:0      收藏:0      [点我收藏+]

浅拷贝:

浅拷贝只拷贝一次,浅拷贝只拷贝指针。

import copy
copy.copy()  #浅拷贝
a1 = 123123
a2 = 123123
print(id(a1))  #查看内存地址
print(id(a2))
#22745648
#22745648

a3 = copy.copy(a1)
print(id(a1))
print(id(a3))
#22745648  #内存地址相同
#22745648

深拷贝:

深拷贝拷贝多层,深拷贝可以重新申请空间并将数据复制过来

 1 n1 = {k1:wu,k2:123,k3:[alex,456]}
 2 n2 = n1
 3 print(id(n1))  #39035368
 4 print(id(n2))  #39035368
 5 n3 = copy.copy(n1)
 6 n4 = copy.deepcopy(n1)
 7 print(id(n1))  #39035368
 8 print(id(n3))  #39295376
 9 print(id(n4))  #39035608
10 print(id(n1[k3]))  #46733552
11 print(id(n3[k3]))  #46733552
12 print(id(n4[k3]))  #46731352
13 
14 dic = {
15     "cpu":[80,],
16     "mem":[80,],
17     "disk":[80,],
18 }
19 print(brefore,dic)
20 new_dic = copy.copy(dic)
21 new_dic = copy.deepcopy(dic)
22 new_dic[cpu][0] = 50
23 print(dic)
24 print(new_dic)
25 #浅拷贝  {‘disk‘: [80], ‘mem‘: [80], ‘cpu‘: [50]}
26 #        {‘disk‘: [80], ‘mem‘: [80], ‘cpu‘: [50]}
27 #深拷贝  {‘cpu‘: [80], ‘mem‘: [80], ‘disk‘: [80]}
28 #        {‘cpu‘: [50], ‘mem‘: [80], ‘disk‘: [80]}

 

深浅拷贝

原文:http://www.cnblogs.com/yoyovip/p/5620446.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!