我有 2 个字典列表。
a = [{"name": "hello", "city": "xyz"},{"city": "rty", "name": "ert"}]
b = [{"city": "xyz","name": "hello"},{"name": "ert", "city": "rty"}]
上面两个列表是相等的。但如果我使用 ==
进行比较,它会给出 False
。当键可能乱序时,如何检查两个字典列表之间的相等性?
最佳答案
如果您想知道每个列表是否具有相同的字典,即使字典元素可能不在列表中的相同位置(正如您在注释中提到的那样),您可以使用:
a = [{"name": "hello", "city": "xyz"},{"city": "rty", "name": "ert"}]
b = [{"name": "ert", "city": "rty"}, {"city": "xyz","name": "hello"}]
print(a == b)
print(sorted(a, key=lambda d: sorted(d.items())) == sorted(b, key=lambda d: sorted(d.items())))
输出:
False
True
关于python - 当键乱序时比较字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60682655/