Python 3 判断2个字典相同


Posted in Python onAugust 06, 2019

下面先给大家介绍下Python 3 判断2个字典相同的方法,

Python自带的数据结构dict非常好用,之前不知道怎么比较2个字典是否相同,做法是一个一个key比较过去。。。

现在想到可以直接用==进行判断!!!

a = dict(one=1, two=2, three=3)
b = {'one': 1, 'two': 2, 'three': 3}
c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
d = dict([('two', 2), ('one', 1), ('three', 3)])
e = dict({'three': 3, 'one': 1, 'two': 2})
print(a == b == c == d == e)

Python内部对==进行了重载,帮你实现了对key和value进行判断。

知识点扩展:

Python3 查找两字典的相同点

问题

怎样在两个字典中寻找相同点(比如相同的键、相同的值等)?

解决方案

考虑下面两个字典:

a = {
  'x' : 1,
  'y' : 2,
  'z' : 3
}
b = {
  'w' : 10,
  'x' : 11,
  'y' : 2
}

寻找两个字典的相同点,可以在两字典的 keys()或者 items() 方法返回结果上执行集合操作。例如:

# Find keys in common
a.keys() & b.keys() # Return { 'x', 'y' }
# Find keys in a that are not in b
a.keys() - b.keys() # Return { 'z' }
# Find (key,value) pairs in common
a.items() & b.items() # Return { ('y', 2) }

这些集合操作,也可以用于修改或者过滤字典元素,例如:

c = {key:a[key] for key in a.keys() - {'w', 'z'}}
print(c)
{'y': 2, 'x': 1}

讨论

一个字典就是一个键集合与值集合的映射关系。

字典的 keys() 方法返回一个展现键集合的键视图对象,该对象支持集合操作,比如集合并、交、差运算。 所以,可以直接对字典的键执行普通的集合操作,而不用先将它们转换成一个 set。

字典的 items() 方法返回一个包含 (键,值) 对的元素视图对象,该对象同样也支持集合操作。

字典的 values() 方法返回结果,并不支持集合操作,因为值视图不能保证所有的值互不相同,这样会导致某些集合操作出现问题,可以先将值集合转换成 set,然后再执行集合运算。

总结

以上所述是小编给大家介绍的Python 3 判断2个字典相同,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
简单的通用表达式求10乘阶示例
Mar 03 Python
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
python实现用户登陆邮件通知的方法
Jul 09 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
Python3.5运算符操作实例详解
Apr 25 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
Python魔法方法 容器部方法详解
Jan 02 Python
Python使用configparser库读取配置文件
Feb 22 Python
浅谈Python中的正则表达式
Jun 28 Python
django 控制页面跳转的例子
Aug 06 #Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
Aug 06 #Python
django项目简单调取百度翻译接口的方法
Aug 06 #Python
python数据归一化及三种方法详解
Aug 06 #Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 #Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 #Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 #Python
You might like
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
PHP 类与构造函数解析
2017/02/06 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
Gird事件机制初级读本
2007/03/10 Javascript
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
基于树莓派的语音对话机器人
2019/06/17 Python
parser.add_argument中的action使用
2020/04/20 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
简历中自我评价分享
2013/10/09 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
会议主持词开场白
2015/05/28 职场文书
初中历史教学反思
2016/02/19 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
浅析Django接口版本控制
2021/06/26 Python
python中tkinter复选框使用操作
2021/11/11 Python
关于Redis的主从复制及哨兵问题
2022/06/16 Redis
详解SQL报错盲注
2022/07/23 SQL Server