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

深、浅拷贝

时间:2016-12-31 17:55:55      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:意义   字符串   bsp   int   copy   div   元祖   pre   code   

1、首先对于数字和字符串而言,深浅拷贝无实际意义,两者同时指向同一个内存地址。

1 a = 123
2 print(id(a))
3 
4 b = a
5 print(id(b))
6 
7 
8 495849744
9 495849744

 

2、对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

浅拷贝,内存地址不变,两次赋值都指向同一个内存地址。

import copy

a = {"k1": "v1", "k2": 111, "k3": ["v2", 222]}
print(id(a))

b = copy.copy(a)
print(id(b))


10278600
10278600

 

深拷贝,在内存中将所有的数据重新创建一份(排除最后一层),其实就是排除掉了最后一层的字符串和数字。

 1 import copy
 2 
 3 a = {"k1": "v1", "k2": 111, "k3": ["v2", 222]}
 4 print(id(a))
 5 
 6 b = copy.deepcopy(a)
 7 print(id(b))
 8 
 9 
10 10147528
11 10598792

 

深、浅拷贝

标签:意义   字符串   bsp   int   copy   div   元祖   pre   code   

原文地址:http://www.cnblogs.com/fanyunpeng/p/6239513.html

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