dict
我有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
对象与其他OrderedDict
对象之间的Equality tests
是像常规字典一样,不区分顺序。]关于
Mapping
的文档说了这一点,这些字典就是这种情况:对时,映射(Value comparisons的实例)比较)相等。并且(且仅当它们具有相等的[[(key,value)
dict
输出:
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())))
dict