码迷,mamicode.com
首页 > 编程语言 > 详细

python中的浅拷贝和深拷贝

时间:2017-06-25 23:11:51      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:数字   python   内存   epc   wan   字符   import   print   port   

1.浅拷贝

copy.copy()

浅拷贝是拷贝只拷贝最外一层(这里所说的拷贝是重新生成一个内存地址,也就是只有最外层的地址是重新生成)

import copy
li=[23,45,[wew,35,[33,00]]]
li1=copy.copy(li)
print(id(li),id(li1))
print(id(li[0]),id(li1[0]))
print(id(li[2][1]),id(li1[2][1]))
#输出:35540704 5872576
#     1625084720 1625084720
#     1625084912 1625084912
#可以看出只有li与li1的地址不同  他们的元素的地址是相同的         

 

2.深拷贝

copy.deepcopy()

深拷贝是除了最里面一层的其他的都拷贝(最里面一层只拷贝值 不重新生成一个内存地址)

import copy
li=[23,[2,99],[wew,35,[33,0]]]
li1=copy.deepcopy(li)
print(li1)
print(id(li),id(li1))
print(id(li[2][2]),id(li1[2][2]))
print(id(li[2][2][0]),id(li1[2][2][0]))
#输出:[23, [2, 99], [‘wew‘, 35, [33, 0]]] 7734816 7183296 7687104 7734936 1625084880 1625084880

 

3.对于数字和字符串是完全拷贝

import copy
s1=wang
s2=copy.copy(s1)
print(s2)
print(id(s1),id(s2))
#输出:wang
#     4868256 4868256    

 

python中的浅拷贝和深拷贝

标签:数字   python   内存   epc   wan   字符   import   print   port   

原文地址:http://www.cnblogs.com/wangbinbin/p/7078301.html

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