Python – Diccionario de combinación de todos los elementos posibles

A veces, mientras trabajamos con datos, podemos tener un problema en el que se nos proporcionan datos de muestra de la lista de claves y valores y necesitamos construir datos reales como todas las combinaciones posibles de claves y listas de valores de tamaño similar. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Uso de loop +set()
La combinación de las funcionalidades anteriores se puede emplear para resolver este problema. En esto, inicialmente extraemos todos los elementos aplanados en la lista de conjuntos. Luego construimos cada diccionario usando la resta de conjuntos.

# Python3 code to demonstrate working of 
# All possible items combination dictionary
# Using loop + set()
  
# initializing Dictionary
test_dict = {'gfg' : [1, 3], 'is' : [5, 6], 'best' : [4, 7]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# All possible items combination dictionary
# Using loop + set()
temp = [set([key]) | set(value) for key, value in test_dict.items() ]
res = {}
for sub in temp:
    for key in sub:
        res[key] = list(sub - set([key]))
  
# printing result 
print("The all possible items dictionary : " + str(res)) 
Producción :

El diccionario original es: {‘is’: [5, 6], ‘gfg’: [1, 3], ‘best’: [4, 7]}
El diccionario de todos los elementos posibles: {1: [3, ‘gfg ‘], 3: [1, ‘gfg’], 4: [‘mejor’, 7], 5: [‘es’, 6], 6: [‘es’, 5], 7: [4, ‘mejor ‘], ‘mejor’: [4, 7], ‘es’: [5, 6], ‘gfg’: [1, 3]}

Método n.º 2: usarremove() + loop + update()
Esto es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de eliminar los valores ya presentes usando remove() y construimos nuevos elementos del diccionario.

# Python3 code to demonstrate working of 
# All possible items combination dictionary
# Using remove() + loop + update()
  
# initializing Dictionary
test_dict = {'gfg' : [1, 3], 'is' : [5, 6], 'best' : [4, 7]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# All possible items combination dictionary
# Using remove() + loop + update()
res = {}
for key, val in test_dict.items():
    for ele in val:
        temp = val[:]
        temp.remove(ele)
        res.update({ele: [key] + temp})
test_dict.update(res)
  
# printing result 
print("The all possible items dictionary : " + str(test_dict)) 
Producción :

El diccionario original es: {‘is’: [5, 6], ‘gfg’: [1, 3], ‘best’: [4, 7]}
El diccionario de todos los elementos posibles: {1: [3, ‘gfg ‘], 3: [1, ‘gfg’], 4: [‘mejor’, 7], 5: [‘es’, 6], 6: [‘es’, 5], 7: [4, ‘mejor ‘], ‘mejor’: [4, 7], ‘es’: [5, 6], ‘gfg’: [1, 3]}

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 *