Python: compare diccionarios en ciertas claves

A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos comparar los diccionarios para la igualdad en las bases de las claves seleccionadas. Este tipo de problema es común y tiene aplicación en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Usar bucle
Esta es una forma de fuerza bruta en la que se puede realizar esta tarea. En esto, iteramos tanto para el diccionario como para probar manualmente la igualdad de claves utilizando el operador de igualdad de las claves seleccionadas.

# Python3 code to demonstrate working of 
# Compare Dictionaries on certain Keys
# Using loop
  
# initializing dictionaries
test_dict1 = {'gfg' : 1, 'is' : 2, 'best' : 3, 'for' : 4, 'geeks' : 5}
test_dict2 = {'gfg' : 2, 'is' : 3, 'best' : 3, 'for' : 7, 'geeks' : 5}
  
# printing original dictionaries
print("The original dictionary 1 : " + str(test_dict1))
print("The original dictionary 2 : " + str(test_dict2))
  
# initializing compare keys 
comp_keys = ['best', 'geeks']
  
# Compare Dictionaries on certain Keys
# Using loop
res = True
for key in comp_keys:
    if test_dict1.get(key) != test_dict2.get(key):
        res = False
        break 
      
# printing result 
print("Are dictionary equal : " + str(res)) 
Producción :

El diccionario original 1: {‘geeks’: 5, ‘gfg’: 1, ‘is’: 2, ‘for’: 4, ‘best’: 3} El diccionario original 2: {‘geeks’: 5, ‘
gfg ‘: 2, ‘es’: 3, ‘para’: 7, ‘mejor’: 3}
Son iguales según el diccionario: Verdadero

Método #2: Usarall()
Esta es una alternativa de línea para realizar esta tarea. En esto, la funcionalidad de comparación se realiza utilizando all(), comparando todas las claves requeridas.

# Python3 code to demonstrate working of 
# Compare Dictionaries on certain Keys
# Using all()
  
# initializing dictionaries
test_dict1 = {'gfg' : 1, 'is' : 2, 'best' : 3, 'for' : 4, 'geeks' : 5}
test_dict2 = {'gfg' : 2, 'is' : 3, 'best' : 3, 'for' : 7, 'geeks' : 5}
  
# printing original dictionaries
print("The original dictionary 1 : " + str(test_dict1))
print("The original dictionary 2 : " + str(test_dict2))
  
# initializing compare keys 
comp_keys = ['best', 'geeks']
  
# Compare Dictionaries on certain Keys
# Using all()
res = all(test_dict1.get(key) == test_dict2.get(key) for key in comp_keys)
      
# printing result 
print("Are dictionary equal : " + str(res)) 
Producción :

El diccionario original 1: {‘geeks’: 5, ‘gfg’: 1, ‘is’: 2, ‘for’: 4, ‘best’: 3} El diccionario original 2: {‘geeks’: 5, ‘
gfg ‘: 2, ‘es’: 3, ‘para’: 7, ‘mejor’: 3}
Son iguales según el diccionario: Verdadero

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *