python - 当键乱序时比较字典列表
问题描述
我有 2 个字典列表。
a = [{"name": "hello", "city": "xyz"},{"city": "rty", "name": "ert"}]
b = [{"city": "xyz","name": "hello"},{"name": "ert", "city": "rty"}]
上述两个列表是相等的。但是,如果我使用 进行比较==
,它会给出False
. 当键可能乱序时,如何检查两个字典列表之间的相等性?
解决方案
我很确定你以某种方式犯了错误。我和其他人得到True
:
>>> a = [{"name": "hello", "city": "xyz"},{"city": "rty", "name": "ert"}]
>>> b = [{"city": "xyz","name": "hello"},{"name": "ert", "city": "rty"}]
>>> a == b
True
这就是它应该做的。
关于OrderedDict
说的文档(强调我的):
OrderedDict
对象和其他Mapping
对象之间的相等性测试像常规字典一样对顺序不敏感。
关于值比较的文档说明了这一点,这些字典就是这种情况:
映射(的实例
dict
)比较相等当且仅当它们具有相等的(键,值)对。
推荐阅读
- delphi - 将 IHTMLDocument2 实例分配给 TWebBrowser 实例
- html - Safari 15.0 视频元素位置固定在页面加载时不起作用
- performance - QML 为大量矩形设置动画时性能缓慢
- node.js - /node_modules/angular2-moment/add.pipe.d.ts 中声明的符号 AddPipe 中的错误未从 angular2-moment/moment.module 导出
- amazon-web-services - 我可以阻止 DynamoDB 全局表的副本同步吗?
- c++ - 用于 C++ 编译的 Visual Studio Code 配置
- azure - Azure ML 发布错误 AZUREML_COMPUTE_USE COMMON_RUNTIME
- node.js - 在 AWS lambda 中对 cognito 用户进行身份验证不会调用 authenticateUser() 并继续跳过它
- python - 使用 selenium python 处理网站错误
- java - 如何使用 Mockito 模拟记录