これはささいなことのようですが、2つの辞書が等しいかどうかを判断するための組み込みの簡単な方法はありません。
私が欲しいのは:
a = {'foo': 1, 'bar': 2}
b = {'foo': 1, 'bar': 2}
c = {'bar': 2, 'foo': 1}
d = {'foo': 2, 'bar': 1}
e = {'foo': 1, 'bar': 2, 'baz':3}
f = {'foo': 1}
equal(a, b) # True
equal(a, c) # True - order does not matter
equal(a, d) # False - values do not match
equal(a, e) # False - e has additional elements
equal(a, f) # False - a has additional elements
短いループスクリプトを作成することもできますが、私のようなユニークなユースケースだとは思えません。
==
機能
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})
a == b == c == d == e
True
上記の例がお役に立てば幸いです。
古き良き==
ステートメントは機能します。
a = {'foo': 1, 'bar': 2}
b = {'foo': 1, 'bar': 2}
c = {'bar': 2, 'foo': 1}
d = {'foo': 2, 'bar': 1}
e = {'foo': 1, 'bar': 2, 'baz':3}
f = {'foo': 1}
print(a.items() == b.items())
print(a.items() == c.items())
print(a.items() == d.items())
print(a.items() == e.items())
print(a.items() == f.items())
出力
True
True
False
False
False