Python – Diferencia simétrica de diccionarios

Dados dos diccionarios, la tarea es escribir un programa en Python para obtener la diferencia simétrica.

Ejemplos:

Entrada: test_dict1 = {‘Gfg’: 4, ‘es’: 3, ‘mejor’: 7, ‘para’: 3, ‘geek’: 4}, 

test_dict2 = {‘Gfg’: 4, ‘es’: 3, ‘bueno’: 7, ‘para’: 3, ‘todos’: 4}

Salida: {‘todos’: 4, ‘bueno’: 7, ‘mejor’: 7, ‘geek’: 4}

Explicación: all, good, best y geek son claves mutuamente únicas.

Entrada: test_dict1 = {‘Gfg’: 4, ‘is’: 3, ‘good’: 7, ‘for’: 3, ‘geek’: 4}, 

test_dict2 = {‘Gfg’: 4, ‘es’: 3, ‘bueno’: 7, ‘para’: 3, ‘todos’: 4}

Salida: {‘todos’: 4, ‘geek’: 4}

Explicación: todos, geek, son claves mutuamente únicas.

Método #1: Usando el operador ^ + teclas() + comprensión del diccionario

En esto, extraemos todas las claves usando keys(), y obtenemos la diferencia simétrica de todas las claves usando el operador ^. El diccionario necesario se compila utilizando la comprensión de diccionario.

Python3

# Python3 code to demonstrate working of
# Symmetric Difference of Dictionaries
# Using ^ operator + keys() + dictionary comprehension
  
# initializing dictionaries
test_dict1 = {'Gfg': 4, 'is': 3, 'best': 7, 'for': 3, 'geek': 4}
test_dict2 = {'Gfg': 4, 'is': 3, 'good': 7, 'for': 3, 'all': 4}
  
# printing original dictionaries
print("The original dictionary 1 is : " + str(test_dict1))
print("The original dictionary 2 is : " + str(test_dict2))
  
# getting symmetric difference using ^ operation
res = {key: test_dict1[key] if key in test_dict1 else test_dict2[key]
       for key in test_dict1.keys() ^ test_dict2.keys()}
  
# printing result
print("The symmetric difference : " + str(res))

Producción:

El diccionario original 1 es: {‘Gfg’: 4, ‘is’: 3, ‘best’: 7, ‘for’: 3, ‘geek’: 4}

El diccionario original 2 es: {‘Gfg’: 4, ‘is’: 3, ‘good’: 7, ‘for’: 3, ‘all’: 4}

La diferencia simétrica: {‘geek’: 4, ‘best’: 7, ‘all’: 4, ‘good’: 7}

Método n.º 2: usar set.symmetric_difference() + keys()

En esto, realizamos la tarea de obtener elementos poco comunes usando la función incorporada symmetric_difference().

Python3

# Python3 code to demonstrate working of
# Symmetric Difference of Dictionaries
# Using set.symmetric_difference() + keys()
  
# initializing dictionaries
test_dict1 = {'Gfg': 4, 'is': 3, 'best': 7, 'for': 3, 'geek': 4}
test_dict2 = {'Gfg': 4, 'is': 3, 'good': 7, 'for': 3, 'all': 4}
  
# printing original dictionaries
print("The original dictionary 1 is : " + str(test_dict1))
print("The original dictionary 2 is : " + str(test_dict2))
  
# computing sym. difference using set inbuilt function
res = {key: test_dict1[key] if key in test_dict1 else test_dict2[key] for key in
       set(test_dict1.keys()).symmetric_difference(test_dict2.keys())}
  
# printing result
print("The symmetric difference : " + str(res))

Producción:

El diccionario original 1 es: {‘Gfg’: 4, ‘is’: 3, ‘best’: 7, ‘for’: 3, ‘geek’: 4}

El diccionario original 2 es: {‘Gfg’: 4, ‘is’: 3, ‘good’: 7, ‘for’: 3, ‘all’: 4}

La diferencia simétrica: {‘bueno’: 7, ‘todos’: 4, ‘geek’: 4, ‘mejor’: 7}

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 *