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 相关文章推荐
python实现代码行数统计示例分享
Feb 10 Python
Python用zip函数同时遍历多个迭代器示例详解
Nov 14 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
python实现年会抽奖程序
Jan 22 Python
python递归法解决棋盘分割问题
Jul 17 Python
python web框架 django wsgi原理解析
Aug 20 Python
python实现发送form-data数据的方法详解
Sep 27 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
Jan 08 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 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
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP编程计算文件或数组中单词出现频率的方法
2017/05/22 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
对python字典过滤条件的实例详解
2019/01/22 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
关于是否需要写商业计划书
2014/02/07 职场文书
超市开学活动方案
2014/03/01 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
2014年残联工作总结
2014/11/21 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
解决Redis启动警告问题
2022/02/24 Redis