Python | Combinando valores del diccionario de la lista

Dado un diccionario de valores de lista, la tarea es combinar cada par clave-valor en cada combinación.

Entrada:
{“Nombre”: [“Paras”, “Chunky”],
“Sitio”: [“Geeksforgeeks”, “Cyware”, “Google”] }

Salida:
[{‘Sitio’: ‘Geeksforgeeks’, ‘Nombre’: ‘Paras’}, {‘Sitio’: ‘Cyware’, ‘Nombre’: ‘Paras’},
{‘Sitio’: ‘Google’, ‘Nombre ‘: ‘Paras’}, {‘Sitio’: ‘Geeksforgeeks’, ‘Nombre’: ‘Chunky’},
{‘Sitio’: ‘Cyware’, ‘Nombre’: ‘Chunky’}, {‘Sitio’: ‘Google ‘, ‘Nombre’: ‘Fornido’}]

Método #1: Usar itertools y ordenar

# Python code to combine every key value
# pair in every combinations
  
# List initialization
Input = {
"Bool" : ["True", "False"],
"Data" : ["Int", "Float", "Long Long"],
}
  
# Importing
import itertools as it
  
# Sorting input
sorted_Input = sorted(Input)
  
# Using product after sorting
Output = [dict(zip(sorted_Input, prod)) 
          for prod in it.product(*(Input[sorted_Input]
          for sorted_Input in sorted_Input))]
  
# Printing output
print(Output)
Producción:

[{‘Bool’: ‘True’, ‘Data’: ‘Int’}, {‘Bool’: ‘True’, ‘Data’: ‘Float’}, {‘Bool’: ‘True’, ‘Data’: ‘Long Long’}, {‘Bool’: ‘False’, ‘Data’: ‘Int’}, {‘Bool’: ‘False’, ‘Data’: ‘Float’}, {‘Bool’: ‘False’ , ‘Datos’: ‘Largo Largo’}]

 
Método #2: Usando Zip

# Python code to combine every key value
# pair in every combinations
  
# Importing
import itertools
  
# Input Initialization
Input = {
"Bool" : ["True", "False"],
"Data" : ["Int", "Float", "Long Long"],
}
  
# using zip and product without sorting
Output = [[{key: value} for (key, value) in zip(Input, values)] 
              for values in itertools.product(*Input.values())]
                  
# Printing output
print(Output)
Producción:

[[{‘Data’: ‘Int’}, {‘Bool’: ‘True’}], [{‘Data’: ‘Int’}, {‘Bool’: ‘False’}], [{‘Data’ : ‘Flotante’}, {‘Bool’: ‘Verdadero’}], [{‘Datos’: ‘Flotante’}, {‘Bool’: ‘Falso’}], [{‘Datos’: ‘Largo Largo’} , {‘Bool’: ‘Verdadero’}], [{‘Datos’: ‘Largo Largo’}, {‘Bool’: ‘Falso’}]]

Publicación traducida automáticamente

Artículo escrito por everythingispossible 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 *