【100+ python基础入门-34】Python字典添加元素(键值对)-copy()方法

导读:本篇文章讲解 【100+ python基础入门-34】Python字典添加元素(键值对)-copy()方法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

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

返回结果:

{'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']}

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

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

返回结果:

{'name': 'Tom', 'age': 18, 'love': 'python'} 34693248
{'name': 'Tom', 'age': 18, 'love': 'python'} 34693248

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73439.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!