您的位置:首页 > 编程语言 > Python开发

python深、浅拷贝

2016-12-31 16:35 295 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: