首页 > 其他 > 详细

深浅拷贝

时间:2017-07-04 16:02:11      阅读:267      评论:0      收藏:0      [点我收藏+]
#import copy
#浅拷贝

#copy.copy()

#深拷贝
#copy.deepcopy()

#赋值
#=
#字符串和数字、copy在内存里用的是同一地址
#对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。
import
copy #字符串、数字 #a1 = 123123 #a2 = 123123 #a2 = a1 #print(id(a1)) #print(id(a2)) a1 = sadasdasdasdasd a3 =copy.deepcopy(a1) print(id(a1)) print(id(a3))
技术分享

 


 

import copy

#其它、元组、列表、字典......
n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}

#赋值(id 一样)
#n2 = n1
#print(id(n1))
#print(id(n2))
技术分享

#浅拷贝(id 不一样) n3 = copy.copy(n1) print(id(n1)) print(id(n3))
技术分享

 

#id一样
print(id(n1[k3]))
print(id(n3[k3]))

 

 

深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

技术分享

 

import copy

#其它、元组、列表、字典......
n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}

#赋值(id 一样)
#n2 = n1
#print(id(n1))
#print(id(n2))

#浅拷贝(id 不一样)
#n3 = copy.copy(n1)
n3 = copy.deepcopy(n1)
print(id(n1))
print(id(n3))
#id一样
print(id(n1[k3]))
print(id(n3[k3]))

输出:

35099032
35099272
35583160
35535848



 

深浅拷贝

原文:http://www.cnblogs.com/mrzuo/p/7116907.html

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