Dado el diccionario con valores como lista, extrae todas las combinaciones posibles, tanto con claves cruzadas como con valores.
Entrada : test_dict = {“Gfg”: [4, 5], “es”: [1, 2], “Mejor”: [9, 4]}
Salida : {0: [[‘Gfg’, 4], [ ‘es’, 1], [‘Mejor’, 9]], 1: [[‘Gfg’, 4], [‘es’, 1], [‘Mejor’, 4]], 2: [[‘Gfg ‘, 4], [‘es’, 2], [‘Mejor’, 9]], 3: [[‘Gfg’, 4], [‘es’, 2], [‘Mejor’, 4]], 4: [[‘Gfg’, 5], [‘is’, 1], [‘Best’, 9]], 5: [[‘Gfg’, 5], [‘is’, 1], [‘Best ‘, 4]], 6: [[‘Gfg’, 5], [‘is’, 2], [‘Best’, 9]], 7: [[‘Gfg’, 5], [‘is’, 2], [‘Best’, 4]]}
Explicación : Imprime todas las combinaciones posibles de clave con valores y valores cruzados también.Entrada : test_dict = {“Gfg”: [4], “es”: [1], “Mejor”: [4]}
Salida : {0: [[‘Gfg’, 4], [‘es’, 1] , [‘Best’, 4]]}
Explicación : Imprime todas las combinaciones posibles de clave con valores y valores cruzados también.
Método #1: Usar producto() + zip() + bucle
La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la primera combinación de claves con todos los valores usando product() y las combinaciones de teclas cruzadas se realizan usando zip() y loop.
Python3
# Python3 code to demonstrate working of # Dictionary Key Value lists combinations # Using product() + zip() + loop from itertools import product # initializing dictionary test_dict = {"Gfg" : [4, 5, 7], "is" : [1, 2, 9], "Best" : [9, 4, 2]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) temp = list(test_dict.keys()) res = dict() cnt = 0 # making key-value combinations using product for combs in product (*test_dict.values()): # zip used to perform cross keys combinations. res[cnt] = [[ele, cnt] for ele, cnt in zip(test_dict, combs)] cnt += 1 # printing result print("The computed combinations : " + str(res))
El diccionario original es: {‘Gfg’: [4, 5, 7], ‘is’: [1, 2, 9], ‘Best’: [9, 4, 2]}
Las combinaciones calculadas: {0: [[‘Gfg’, 4], [‘is’, 1], [‘Best’, 9]], 1: [[‘Gfg’, 4], [‘is’, 1 ], [‘Mejor’, 4]], 2: [[‘Gfg’, 4], [‘es’, 1], [‘Mejor’, 2]], 3: [[‘Gfg’, 4], [‘es’, 2], [‘Mejor’, 9]], 4: [[‘Gfg’, 4], [‘es’, 2], [‘Mejor’, 4]], 5: [[‘ Gfg’, 4], [‘is’, 2], [‘Best’, 2]], 6: [[‘Gfg’, 4], [‘is’, 9], [‘Best’, 9]] , 7: [[‘Gfg’, 4], [‘is’, 9], [‘Best’, 4]], 8: [[‘Gfg’, 4], [‘is’, 9], [‘ Mejor’, 2]], 9: [[‘Gfg’, 5], [‘es’, 1], [‘Mejor’, 9]], 10: [[‘Gfg’, 5], [‘es’ , 1], [‘Mejor’, 4]], 11: [[‘Gfg’, 5], [‘es’, 1], [‘Mejor’, 2]], 12: [[‘Gfg’, 5 ], [‘es’, 2], [‘Mejor’, 9]], 13: [[‘Gfg’, 5], [‘es’, 2], [‘Mejor’, 4]], 14: [ [‘Gfg’, 5], [‘is’, 2], [‘Best’, 2]], 15: [[‘Gfg’, 5], [‘is’, 9], [‘Best’, 9 ]], 16: [[‘Gfg’, 5], [‘is’, 9], [‘Best’, 4]], 17: [[‘Gfg’, 5], [‘is’, 9], [‘Mejor’, 2]], 18: [[‘Gfg’, 7], [‘es’, 1], [‘Mejor’, 9]], 19: [[‘Gfg’, 7], [‘ es’, 1], [‘Mejor’, 4]],20: [[‘Gfg’, 7], [‘is’, 1], [‘Best’, 2]], 21: [[‘Gfg’, 7], [‘is’, 2], [‘Best ‘, 9]], 22: [[‘Gfg’, 7], [‘is’, 2], [‘Best’, 4]], 23: [[‘Gfg’, 7], [‘is’, 2], [‘Mejor’, 2]], 24: [[‘Gfg’, 7], [‘es’, 9], [‘Mejor’, 9]], 25: [[‘Gfg’, 7] , [‘es’, 9], [‘Mejor’, 4]], 26: [[‘Gfg’, 7], [‘es’, 9], [‘Mejor’, 2]]}
Método #2: Usar producto() + bucle
La combinación de las funciones anteriores también se puede utilizar para resolver este problema. En esto, realizamos la tarea de realizar la combinación de teclas internas y cruzadas usando product(). La diferencia es que el contenedor de agrupación es una tupla en lugar de una lista.
Python3
# Python3 code to demonstrate working of # Dictionary Key Value lists combinations # Using product() + loop from itertools import product # initializing dictionary test_dict = {"Gfg" : [4, 5, 7], "is" : [1, 2, 9], "Best" : [9, 4, 2]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) res = {} for key, val in test_dict.items(): # for key-value combinations res[key] = product([key], val) # computing cross key combinations res = product(*res.values()) # printing result print("The computed combinations : " + str(list(res)))
El diccionario original es: {‘Gfg’: [4, 5, 7], ‘is’: [1, 2, 9], ‘Best’: [9, 4, 2]}
Las combinaciones calculadas: [((‘Gfg’, 4), (‘is’, 1), (‘Best’, 9)), ((‘Gfg’, 4), (‘is’, 1), (‘ Mejor’, 4)), ((‘Gfg’, 4), (‘es’, 1), (‘Mejor’, 2)), ((‘Gfg’, 4), (‘es’, 2), (‘Mejor’, 9)), ((‘Gfg’, 4), (‘es’, 2), (‘Mejor’, 4)), ((‘Gfg’, 4), (‘es’, 2 ), (‘Mejor’, 2)), ((‘Gfg’, 4), (‘es’, 9), (‘Mejor’, 9)), ((‘Gfg’, 4), (‘es’ , 9), (‘Best’, 4)), ((‘Gfg’, 4), (‘is’, 9), (‘Best’, 2)), ((‘Gfg’, 5), (‘ es’, 1), (‘Mejor’, 9)), ((‘Gfg’, 5), (‘es’, 1), (‘Mejor’, 4)), ((‘Gfg’, 5), (‘es’, 1), (‘Mejor’, 2)), ((‘Gfg’, 5), (‘es’, 2), (‘Mejor’, 9)), ((‘Gfg’, 5 ), (‘es’, 2), (‘Mejor’, 4)), ((‘Gfg’, 5), (‘es’, 2), (‘Mejor’, 2)), ((‘Gfg’ , 5), (‘es’, 9), (‘Mejor’, 9)), ((‘Gfg’, 5), (‘es’, 9), (‘Mejor’, 4)), ((‘ Gfg’, 5), (‘is’, 9), (‘Best’, 2)), ((‘Gfg’, 7), (‘is’, 1), (‘Best’, 9)), ( (‘Gfg’, 7), (‘is’, 1), (‘Best’, 4)), ((‘Gfg’, 7), (‘is’, 1), (‘Best’, 2)) , ((‘Gfg’, 7), (‘es’, 2), (‘Mejor’,9)), ((‘Gfg’, 7), (‘is’, 2), (‘Best’, 4)), ((‘Gfg’, 7), (‘is’, 2), (‘Best ‘, 2)), ((‘Gfg’, 7), (‘is’, 9), (‘Best’, 9)), ((‘Gfg’, 7), (‘is’, 9), ( ‘Mejor’, 4)), ((‘Gfg’, 7), (‘es’, 9), (‘Mejor’, 2))]
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