首页 > 代码库 > 深、浅拷贝
深、浅拷贝
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
深、浅拷贝
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。