Pythonで辞書同士を比較し同値性を確認したい
pythonでは2つの辞書を比較するのに ==
を使っても大丈夫でしょうか?
全てのkey, valueのペアが一致しているかどうかを調べたいです。
dict1 = {'a': 1, 'b':2, 'c': 3}
dict2 = {'a': 1, 'c': 3, 'b':2}
print(dict1 == dict2)
dict3 = {'a': 1, 'b':2, 'c': 3}
dict4 = {'a': 1, 'c': 3, 'b':2.0}
print(dict3 == dict4)
printではどちらも True
が返ってきました。
辞書でkeyの順序は関係ないのは分かります。
2 == 2.0
がTrue
で判定されるもの問題ないです。
例ではkeyを文字列、valueを数値にしていますが、valueがリストだったり辞書だったりした場合でも問題ないでしょうか?
import pickle
x = pickle.dumps(dict1)
y = pickle.dumps(dict2)
print(x == y)
p = pickle.dumps(dict3)
q = pickle.dumps(dict4)
print(p == q)
ちなみにpickle.dumps()
でシリアライズをするとx==y
はTrue
になりましたが、p==q
はFalse
になりました。