首页 > 代码库 > Python 学习日记第六篇 -- 深浅拷贝
Python 学习日记第六篇 -- 深浅拷贝
深浅拷贝:
1、字符串和数字
import copy #浅拷贝 copy.copy() #深拷贝 copy.deepcopy() ###################################################################################### a1 = "string" #a1 = 11 a2 = a1 a3 = copy.copy(a1) a4 = copy.deepcopy(a1) print(id(a1)) print(id(a2)) print(id(a3)) print(id(a4)) ########## result: 2719424 2719424 2719424 2719424
由上,可以看出字符串与数字,赋值、浅拷贝、深拷贝,其结果是一样的,都指向了同一个内存地址
2、字典,列表,元组
1、赋值:只是创建了一个引用,内存地址不变 d1 = {‘k1‘:‘v1‘,‘k2‘:123,‘k3‘:[11,‘22‘,]} d2 = d1 print(id(d1)) print(id(d2)) ########## result: 5349704 5349704
2、浅拷贝,在内存中额外创建第一层引用 d1 = {‘k1‘:‘v1‘,‘k2‘:123,‘k3‘:[11,‘22‘,]} d2 = copy.copy(d1) print(id(d1)) print(id(d1[‘k3‘])) print(id(d2[‘k3‘])) print(id(d2)) ########## result: 34971976 35475168 35475168 35225192
3、深拷贝,在内存中创建除字符串与数字外的所有层 d1 = {‘k1‘:‘v1‘,‘k2‘:123,‘k3‘:[11,‘22‘,]} d2 = copy.deepcopy(d1) print(id(d1)) print(id(d1[‘k3‘])) print(id(d2[‘k3‘])) print(id(d2)) ########## result: 6922568 7425760 7361520 6922808
Python 学习日记第六篇 -- 深浅拷贝
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。