HOWTO · Python

Compare dois dicionários em Python

Este artigo explica o método de comparação de dois dicionários Python.

Nesta página

Este artigo apresentará como comparar dois dicionários em Python.

Use o operador == para comparar dois dicionários em Python

O operador == em Python pode ser usado para determinar se os dicionários são idênticos ou não.

Aqui está um exemplo quando existem dicionários idênticos.

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

Resultado:

True

Aqui está um exemplo, quando há dicionários não idênticos -

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

Resultado:

False

Você pode comparar muitos dicionários conforme mencionado no exemplo a seguir,

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

Resultado:

False

Escreva um código personalizado para comparar dois dicionários em Python

Aqui está como você pode escrever código para comparar os dicionários e determinar quantos pares são comuns entre os dicionários. Abaixo estão as etapas.

  • Use um loop for para percorrer cada item em um dos dicionários. Compare cada item deste dicionário com o outro dicionário com base no índice compartilhado.
  • Se os itens forem iguais, coloque o par key:value no dicionário compartilhado de resultados.
  • Depois de percorrer todo o dicionário, calcule o comprimento do dicionário compartilhado de resultados para determinar o número de itens comuns entre os dicionários.

Abaixo está um exemplo que demonstra o método para comparar dois dicionários em Python.

Neste caso, os dicionários são idênticos.

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")

Resultado:

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

A seguir, vamos tentar um exemplo em que os dicionários não são idênticos -

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")

Resultado:

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