python - 比较python中的2个字典
问题描述
嗨,我有 2 个字典,其中第一个有 266 个条目,第二个字典有 136 个。所以通过比较两个字典我想要不匹配的结果。
例如 dic 1 比 dic 2 多 130 个数据。所以我需要那些 130 个不匹配的数据。
这有什么逻辑吗?
谢谢
解决方案
蟒蛇2:
假设“条目”是指“键”,一个解决方案是在字典键上使用设置差异与类似的东西set(dict1.keys()) - set(dict2.keys())
例子:
>>> a = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> b = {'a': 1, 'c': 3}
>>> a.keys()
['a', 'c', 'b', 'd']
>>> b.keys()
['a', 'c']
>>> set(a.keys())-set(b.keys())
set(['b', 'd'])
>>>
你会得到一组在set(dict1.keys()) ^ set(dict2.keys())
任一字典中但不在两个字典中的键。
蟒蛇 3
Python 3中字典的keys()
方法直接支持集差(-
)和对称差(^
)所以可以写
dict1.keys() - dict2.keys()
dict1.keys() ^ dict2.keys()
推荐阅读
- python - 在 python 中进行拼写检查的时间太多
- delphi - PostgreSQL 的 FireDAC 异常 EFDDBEngineException 错误代码映射是否有任何变化?
- c# - 如果 MSBuild 工具为时过早,如何让 MSBuild .proj 失败
- c++ - 使用 ICP 算法查找两个点云之间的平移
- angular - 如何在 angular-google-charts 中缩放谷歌折线图?
- javascript - 在 Google 我的地图 iframe 上禁用鼠标滚轮滚动
- r - R:使用 terminalExecute() 时出现“调用 capture_console_output 时出错:87”
- java - Centos java定制服务
- entity-framework - 实体框架:映射多对多
- mysql - 具有唯一子集的 MySQL 复合索引