Python – Lista de diccionarios de todas las combinaciones

Dadas 2 listas, forme todas las combinaciones posibles de diccionarios que se pueden formar tomando claves de lista1 y valores de lista2.

Entrada : test_list1 = [“Gfg”, “is”, “Best”], test_list2 = [4] 
Salida : [{‘Gfg’: 4, ‘is’: 4, ‘Best’: 4}]
Explicación : Todas las combinaciones lista de diccionarios extraída.
 

Entrada : test_list1 = [“Gfg”, “is”, “Best”], test_list2 = [5, 6] 
Salida : [{‘Gfg’: 5, ‘is’: 5, ‘Best’: 5}, {‘ Gfg’: 5, ‘is’: 5, ‘Best’: 6}, {‘Gfg’: 5, ‘is’: 6, ‘Best’: 5}, {‘Gfg’: 5, ‘is’: 6 , ‘Mejor’: 6}, {‘Gfg’: 6, ‘es’: 5, ‘Mejor’: 5}, {‘Gfg’: 6, ‘es’: 5, ‘Mejor’: 6}, {‘ Gfg’: 6, ‘is’: 6, ‘Best’: 5}, {‘Gfg’: 6, ‘is’: 6, ‘Best’: 6}] 
Explicación : se extrajo la lista del diccionario de todas las combinaciones. 
 

Método #1: Uso de product() + comprensión de diccionario + comprensión de lista

En esto, obtenemos todas las combinaciones posibles usando product() y la comprensión de diccionario genera cada diccionario, la comprensión de lista se usa para iterar las combinaciones generadas.

Python3

# Python3 code to demonstrate working of 
# All combination Dictionary List
# Using product() + list comprehension + dictionary comprehension
from itertools import product
  
# initializing lists
test_list1 = ["Gfg", "is", "Best"]
test_list2 = [4, 5]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# generating combinations
temp = product(test_list2, repeat = len(test_list1))
  
# constructing dicts using combinations
res = [{key : val for (key , val) in zip(test_list1, ele)} for ele in temp]
  
# printing result 
print("The combinations dictionary : " + str(res))

Producción:

La lista original 1 es: [‘Gfg’, ‘is’, ‘Best’]
La lista original 2 es: [4, 5]
El diccionario de combinaciones: [{‘Gfg’: 4, ‘is’: 4, ‘Best ‘: 4}, {‘Gfg’: 4, ‘is’: 4, ‘Best’: 5}, {‘Gfg’: 4, ‘is’: 5, ‘Best’: 4}, {‘Gfg’: 4, ‘es’: 5, ‘Mejor’: 5}, {‘Gfg’: 5, ‘es’: 4, ‘Mejor’: 4}, {‘Gfg’: 5, ‘es’: 4, ‘Mejor ‘: 5}, {‘Gfg’: 5, ‘is’: 5, ‘Best’: 4}, {‘Gfg’: 5, ‘is’: 5, ‘Best’: 5}]

Método #2: Usar permutaciones() + comprensión de diccionario + comprensión de lista [Para elementos únicos]

Si requerimos que los valores sean todos únicos, se pueden usar permutations() en lugar de product() para lograr esta tarea.

Python3

# Python3 code to demonstrate working of
# All combination Dictionary List
# Using product() + list comprehension + dictionary comprehension
from itertools import permutations
  
# initializing lists
test_list1 = ["Gfg", "is", "Best"]
test_list2 = [4, 5, 6]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# generating combinations
temp = list(permutations(test_list2, len(test_list1)))
  
# constructing dicts using combinations
res = [{key: val for (key, val) in zip(test_list1, ele)} for ele in temp]
  
# printing result
print("The combinations dictionary : " + str(res))

Producción:

La lista original 1 es: [‘Gfg’, ‘is’, ‘Best’]
La lista original 2 es: [4, 5, 6]
El diccionario de combinaciones: [{‘Gfg’: 4, ‘is’: 5, ‘Mejor’: 6}, {‘Gfg’: 4, ‘es’: 6, ‘Mejor’: 5}, {‘Gfg’: 5, ‘es’: 4, ‘Mejor’: 6}, {‘Gfg ‘: 5, ‘es’: 6, ‘Mejor’: 4}, {‘Gfg’: 6, ‘es’: 4, ‘Mejor’: 5}, {‘Gfg’: 6, ‘es’: 5, ‘Mejor’: 4}]

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 *