Python | 2つの辞書の差分を取得する方法
Pythonで2つの辞書の差分データを取得する方法とサンプルコードを紹介しています。
確認環境
Windows11 ローカル
Python python-3.11.1
1つ目の辞書にあって2つ目の辞書には無いキー名を取得する
Pythonでset()
関数とkey()
メソッドでキー名のみのデータにしたものを-
演算子を利用して辞書データの差分を取得する事ができます。
1つ目の辞書にあって2つ目の辞書には無いキー名のとデータを取得する場合は-
演算子で差し引くことで差分のデータを辞書データとして取得できます。
data1 = {'apple': 100, 'banana': 50, 'orange': 120}
data2 = {'apple': 80, 'banana': 50, 'pine': 100}
difference = set(data1.keys()) - set(data2.keys())
print(difference)
# {'orange'}
双方の辞書に無いキー名を取得する
双方の辞書に無いキー名を取得する場合は、単純に結果を結合することで取得する事が可能です。|
演算子を使ってそれぞれで得た差分データの結果を結合します。
data1 = {'apple': 100, 'banana': 50, 'orange': 120}
data2 = {'apple': 80, 'banana': 50, 'pine': 100}
difference = set(data1.keys()) - set(data2.keys()) | set(data2.keys()) - set(data1.keys())
print(difference)
# {'orange', 'pine'}
キーと値のセットで一致しないものを差分データとして取得する
キーと値のセットで一致しないものを差分データとして取得する場合はitems()
メソッドを使って取得する事もできます。
data1 = {'apple': 100, 'banana': 50, 'orange': 120}
data2 = {'apple': 120, 'banana': 80, 'orange': 120}
difference = data1.items() - data2.items()
print(difference)
# {('banana', 50), ('apple', 100)}
2つ目の値が欲しい場合は、指定を逆にします。
data1 = {'apple': 100, 'banana': 50, 'orange': 120}
data2 = {'apple': 120, 'banana': 80, 'orange': 120}
difference = data2.items() - data1.items()
print(difference)
# {('banana', 80), ('apple', 120)}
ディスカッション
コメント一覧
まだ、コメントがありません