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