Pythonで2つの辞書を比較する

Pythonで2つの辞書を比較してみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■等価比較演算子(==)を使用する

では、2つの辞書を比較していきます。まず最初は、等価比較演算子(==)を使用し、2つの辞書を比較していきます。

■コード

dictionary_1 ={'名前':'田中','年齢':25,'出身':'大阪'}
dictionary_2 ={'名前':'戸田','年齢':35,'出身':'愛知'}

if dictionary_1 == dictionary_2:
    print("dictionary_1とdictionary_2は等しい")
else:
    print("dictionary_1とdictionary_2は等しくない")

今回は、dictionary_1とdictionary_2という辞書を作成し、要素(キーと値)を追加しています。このdictionary_1とdictionary_2という辞書の要素はまったく同じではありません。

辞書を作成後、if文を使った条件分岐を使用し、条件式に等価比較演算子の「==(値が等しければ真(True))」を記述します。

そして、条件式が真(True)の場合に、print関数で、辞書の中身が同じであることを文字列で出力します。

次に、elseに条件式が偽(False)の場合の処理を記述します。処理の内容は、print関数で、辞書の中身が同じではないことを文字列で出力します。

■実行

このスクリプトを「d_comparing.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、dictionary_1とdictionary_2という辞書の中身は同じではありませんので、条件式が偽(False)の場合の処理が実行されました。

■deepdiffモジュールを使用する

では、次にdeepdiffモジュールを使用し、2つの辞書を比較することもできますので、やってみます。なお、deepdiffモジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■コード

from deepdiff import DeepDiff

dictionary_1 ={'名前':'田中','年齢':25,'出身':'大阪'}
dictionary_2 ={'名前':'戸田','年齢':35,'出身':'愛知'}

Comparison = DeepDiff(dictionary_1,dictionary_2)

print(Comparison)

インポートでdeepdiffモジュールを呼び出します。その後に先ほどと同じようにdictionary_1とdictionary_2という辞書を作成し、要素(キーと値)を追加します。

追加後、Comparisonという変数を作成し、その中でDeepDiff()を使用します。括弧内には、dictionary_1とdictionary_2を指定します。これで比較することができます。

最後に比較した情報をprint関数で出力します。

■実行

このスクリプトを「d_comparing_2.py」という名前で保存し、コマンドプロンプトから実行してみます。

{‘values_changed’: {“root[‘名前’]”: {‘new_value’: ‘戸田’, ‘old_value’: ‘田中’}, “root[‘年齢’]”: {‘new_value’: 35, ‘old_value’: 25}, “root[‘出身’]”: {‘new_value’: ‘愛知’, ‘old_value’: ‘大阪’}}}

実行してみると、上記のように出力されます。values_changedと表示されているのが、各辞書内の要素(値)の変更です。今回の場合は、dictionary_1の要素が「old_value」で、dictionary_2の要素が「new_value」として、どのような変化があるのかを比較することができます。

コメント

タイトルとURLをコピーしました