前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python字典中copy()方法的使用

Python字典中copy()方法的使用

原创
作者头像
python自学网
修改2021-12-02 17:26:26
1.6K0
修改2021-12-02 17:26:26
举报

copy()方法所遵循的拷贝原理,既有深拷贝,也有浅拷贝。

拿拷贝下面的字典dict1为例: copy()方法只会对最表层的键值对进行深拷贝,也就是说,它会再申请一块内存用来存放 {'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['mysql', 'sqlite', '3.redis']}; 而对于某些列表类型的值来说,此方法对其做的是浅拷贝,也就是说,dict2中的['mysql', 'sqlite', '3.redis']的值不是自己独有,而是和dict1共有。

代码语言:python
复制
dict1 = {'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['mysql', 'sqlite', '3.redis']}
dict2 = dict1.copy()
dict1['web'] = 'Python自学网'
print(dict1)
print(dict2)
dict1['数据库'].remove('mysql')
print(dict1)
print(dict2)

返回结果:

代码语言:python
复制
{'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['mysql', 'sqlite', '3.redis'], 'web': 'Python自学网'}
{'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['mysql', 'sqlite', '3.redis']}
{'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['sqlite', '3.redis'], 'web': 'Python自学网'}
{'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['sqlite', '3.redis']}

除此之外我们再来看看字典是不是可变数据类型

代码语言:python
复制
dict3 = {'name': 'Tom', 'age': 18, 'love': 'python'}
print(dict3, id(dict3))
dict3['love'] = 'python'
print(dict3, id(dict3)) # id不变,说明字典可变

返回结果:

代码语言:python
复制
{'name': 'Tom', 'age': 18, 'love': 'python'} 34693248
{'name': 'Tom', 'age': 18, 'love': 'python'} 34693248

从上面看就知道字典是可变数据类型。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档