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

Najwa Riyaz 2023年1月30日
  1. Python で == 演算子を使用して 2つの辞書を比較する
  2. Python で 2つの辞書を比較するカスタムコードを書く
Python で 2つの辞書を比較する

この記事では、Python で 2つの辞書を比較する方法を紹介します。

Python で == 演算子を使用して 2つの辞書を比較する

Python の == 演算子を使用して、辞書が同一であるかどうかを判断できます。

同一の辞書がある場合の例を次に示します。

dict1 = dict(name="Tom", Vehicle="Benz Car")
dict2 = dict(name="Tom", Vehicle="Benz Car")
dict1 == dict2

出力:

True

同一でない辞書がある場合の例を次に示します-

dict1 = dict(name="John", Vehicle="Benz Car")
dict2 = dict(name="Tom", Vehicle="Benz Car")
dict1 == dict2

出力:

False

次の例で説明されているように、多くの辞書を比較できます。

dict1 = dict(name="John", Vehicle="Benz Car")
dict2 = dict(name="Tom", Vehicle="Benz Car")
dict3 = dict(name="Shona", Vehicle="Alto Car")
dict4 = dict(name="Ruby", Vehicle="Honda Car")
dict1 == dict2 == dict3 == dict4

出力:

False

Python で 2つの辞書を比較するカスタムコードを書く

辞書を比較し、辞書間で共通するペアの数を決定するコードを作成する方法は次のとおりです。以下は手順です。

  • for ループを使用して、辞書の 1つにある各アイテムをトラバースします。共有インデックスに基づいて、この辞書の各項目を他の辞書と比較します。
  • 項目が等しい場合は、key:value ペアを結果の共有ディクショナリに配置します。
  • ディクショナリ全体をトラバースしたら、結果の共有ディクショナリの長さを計算して、ディクショナリ間の共通アイテムの数を決定します。

以下は、Python で 2つの辞書を比較する方法を示す例です。

この場合、辞書は同一です。

dict1 = dict(name="Tom", Vehicle="Mercedes Car")
dict2 = dict(name="Tom", Vehicle="Mercedes Car")
dict1_len = len(dict1)
dict2_len = len(dict2)
total_dict_count = dict1_len + dict2_len

shared_dict = {}

for i in dict1:
    if (i in dict2) and (dict1[i] == dict2[i]):
        shared_dict[i] = dict1[i]

len_shared_dict = len(shared_dict)

print("The items common between the dictionaries are -", shared_dict)
print("The number of items common between the dictionaries are -", len_shared_dict)

if len_shared_dict == total_dict_count / 2:
    print("The dictionaries are identical")
else:
    print("The dictionaries are non-identical")

出力:

The items common between the dictionaries are - {'name': 'Tom', 'Vehicle': 'Mercedes Car'}
The number of items common between the dictionaries are - 2
The dictionaries are identical

次に、辞書が同一でない場合の例を試してみましょう-

dict1 = dict(name="Tom", Vehicle="Alto Car")
dict2 = dict(name="Tom", Vehicle="Mercedes Car")
dict1_len = len(dict1)
dict2_len = len(dict2)
total_dict_count = dict1_len + dict2_len

shared_dict = {}

for i in dict1:
    if (i in dict2) and (dict1[i] == dict2[i]):
        shared_dict[i] = dict1[i]
len_shared_dict = len(shared_dict)
print("The items common between the dictionaries are -", shared_dict)
print("The number of items common between the dictionaries are -", len_shared_dict)
if len_shared_dict == total_dict_count / 2:
    print("The dictionaries are identical")
else:
    print("The dictionaries are non-identical")

出力:

The items common between the dictionaries are - {'name': 'Tom'}
The number of items common between the dictionaries are - 1
The dictionaries are non-identical

関連記事 - Python Dictionary