A veces, mientras trabajamos con diccionarios de Python, podemos tener problemas en los que necesitamos emparejar todas las claves con todos los valores para formar un diccionario con todos los emparejamientos posibles. Esto puede tener aplicación en muchos dominios, incluida la programación día a día. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Uso de la comprensión de listas
Esta tarea se puede realizar con este método. En esto, extraemos manualmente cada clave y luego iteramos con todos los valores de ellos para formar una nueva lista de diccionarios. Esto tiene inconvenientes de que solo está disponible para ciertas teclas.
# Python3 code to demonstrate working of # Key Value list pairings in Dictionary # Using list comprehension # initializing dictionary test_dict = {'gfg' : [7, 8], 'best' : [10, 11, 7]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # Key Value list pairings in Dictionary # Using list comprehension res = [{'gfg': i, 'best': j} for i in test_dict['gfg'] for j in test_dict['best']] # printing result print("All key value paired List : " + str(res))
El diccionario original es: {‘gfg’: [7, 8], ‘mejor’: [10, 11, 7]}
Todos los valores clave emparejados Lista: [{‘gfg’: 7, ‘mejor’: 10}, { ‘gfg’: 7, ‘mejor’: 11}, {‘gfg’: 7, ‘mejor’: 7}, {‘gfg’: 8, ‘mejor’: 10}, {‘gfg’: 8, ‘mejor ‘: 11}, {‘gfg’: 8, ‘mejor’: 7}]
Método #2: Usardict() + zip() + product()
La combinación de los métodos anteriores también se puede usar para realizar esta tarea. En este, la formación de combinaciones se hace usando product(), y la vinculación de valores se hace usando zip().
# Python3 code to demonstrate working of # Key Value list pairings in Dictionary # Using dict() + zip() + product() from itertools import product # initializing dictionary test_dict = {'gfg' : [7, 8], 'best' : [10, 11, 7]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # Key Value list pairings in Dictionary # Using dict() + zip() + product() res = [dict(zip(test_dict, sub)) for sub in product(*test_dict.values())] # printing result print("All key value paired List : " + str(res))
El diccionario original es: {‘gfg’: [7, 8], ‘mejor’: [10, 11, 7]}
Todos los valores clave emparejados Lista: [{‘gfg’: 7, ‘mejor’: 10}, { ‘gfg’: 7, ‘mejor’: 11}, {‘gfg’: 7, ‘mejor’: 7}, {‘gfg’: 8, ‘mejor’: 10}, {‘gfg’: 8, ‘mejor ‘: 11}, {‘gfg’: 8, ‘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