Python: crea un diccionario anidado usando una lista dada

Dada una lista y un diccionario, asigne cada elemento de la lista con cada elemento del diccionario, formando un diccionario anidado como valor.

Entrada : test_dict = {‘Gfg’: 4, ‘best’: 9}, test_list = [8, 2]
Salida : {8: {‘Gfg’: 4}, 2: {‘best’: 9}}
Explicación : Emparejamiento clave-valor de índice de la lista [8] para dictar {‘Gfg’: 4} y así sucesivamente.

Entrada : test_dict = {‘Gfg’: 4}, test_list = [8]
Salida : {8: {‘Gfg’: 4}}
Explicación : Emparejamiento de clave-valor por índice de la lista [8] para dictar {‘Gfg’ : 4}.

Método #1: Usar loop + zip() 

Esta es una de las formas en que se puede realizar esta tarea. En esto, combinamos ambas listas usando zip() y loop se usa para hacer iteraciones de claves comprimidas y construcción de diccionarios.

Python3

# Python3 code to demonstrate working of 
# Nested Dictionary with List
# Using loop + zip()
  
# initializing dictionary and list
test_dict = {'Gfg' : 4, 'is' : 5, 'best' : 9} 
test_list = [8, 3, 2]
  
# printing original dictionary and list
print("The original dictionary is : " + str(test_dict))
print("The original list is : " + str(test_list))
  
# using zip() and loop to perform 
# combining and assignment respectively.
res = {}
for key, ele in zip(test_list, test_dict.items()):
    res[key] = dict([ele])
          
# printing result 
print("The mapped dictionary : " + str(res)) 
Producción

The original dictionary is : {'Gfg': 4, 'is': 5, 'best': 9}
The original list is : [8, 3, 2]
The mapped dictionary : {8: {'Gfg': 4}, 3: {'is': 5}, 2: {'best': 9}}

Método #2: Usando la comprensión del diccionario + zip()

Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos una tarea similar al método anterior, pero en una sola línea usando la comprensión del diccionario

Python3

# Python3 code to demonstrate working of 
# Nested Dictionary with List
# Using dictionary comprehension + zip()
  
# initializing dictionary and list
test_dict = {'Gfg' : 4, 'is' : 5, 'best' : 9} 
test_list = [8, 3, 2]
  
# printing original dictionary and list
print("The original dictionary is : " + str(test_dict))
print("The original list is : " + str(test_list))
  
# zip() and dictionary comprehension mapped in one liner to solve
res = {idx: {key : test_dict[key]} for idx, key in zip(test_list, test_dict)}
          
# printing result 
print("The mapped dictionary : " + str(res)) 
Producción

The original dictionary is : {'Gfg': 4, 'is': 5, 'best': 9}
The original list is : [8, 3, 2]
The mapped dictionary : {8: {'Gfg': 4}, 3: {'is': 5}, 2: {'best': 9}}

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 *