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」として、どのような変化があるのかを比較することができます。
コメント