Python: pares de listas de valores clave en el diccionario

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)) 
Producción :

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)) 
Producción :

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

Deja una respuesta

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