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)
[{‘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)
[[{‘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