1. ホーム
  2. python

[解決済み] Python3 2つの辞書が等しいかどうかを判断する [重複]。

2022-03-08 07:37:31

質問

これは些細なことのように思えますが、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

上記の例がお役に立てれば幸いです。