Python | Dividir diccionario de listas a lista de diccionarios

La conversión de un tipo de datos a otro es esencial en varias facetas de la programación. Ya sea desarrollo o programación competitiva. De ahí que su conocimiento sea bastante útil y necesario.

Analicemos ciertos métodos mediante los cuales el diccionario de la lista se puede convertir en la lista de diccionarios correspondiente.

Método #1: Uso de la comprensión de listas
Podemos usar la comprensión de listas como la alternativa de una línea para realizar varias tareas ingenuas que brindan legibilidad con un código más conciso. Podemos iterar a través de cada uno de los elementos del diccionario y seguir construyendo la lista del diccionario correspondiente.

# Python3 code to demonstrate 
# to convert dictionary of list to 
# list of dictionaries
# using list comprehension
  
# initializing dictionary
test_dict = { "Rash" : [1, 3], "Manjeet" : [1, 4], "Akash" : [3, 4] }
  
# printing original dictionary
print ("The original dictionary is : " + str(test_dict))
  
# using list comprehension
# to convert dictionary of list to 
# list of dictionaries
res = [{key : value[i] for key, value in test_dict.items()}
         for i in range(2)]
  
# printing result
print ("The converted list of dictionaries " +  str(res))
Producción:

El diccionario original es: {‘Rash’: [1, 3], ‘Manjeet’: [1, 4], ‘Akash’: [3, 4]}
La lista convertida de diccionarios [{‘Rash’: 1, ‘ Manjeet’: 1, ‘Akash’: 3}, {‘Erupción’: 3, ‘Manjeet’: 4, ‘Akash’: 4}]

 
Método n.º 2: usarzip()
este enfoque utilizó zip la función dos veces, la primera cuando necesitamos comprimir el valor de índice particular de todas las listas como uno y la segunda para obtener todos los valores de índice particular y comprimirlo con las claves correspondientes.

# Python3 code to demonstrate 
# to convert dictionary of list to 
# list of dictionaries
# using zip()
  
# initializing dictionary
test_dict = { "Rash" : [1, 3], "Manjeet" : [1, 4], "Akash" : [3, 4] }
  
# printing original dictionary
print ("The original dictionary is : " + str(test_dict))
  
# using zip()
# to convert dictionary of list to 
# list of dictionaries
res = [dict(zip(test_dict, i)) for i in zip(*test_dict.values())]
  
# printing result
print ("The converted list of dictionaries " +  str(res))
Producción:

El diccionario original es: {‘Rash’: [1, 3], ‘Akash’: [3, 4], ‘Manjeet’: [1, 4]}
La lista convertida de diccionarios [{‘Rash’: 1, ‘ Akash’: 3, ‘Manjeet’: 1}, {‘Erupción’: 3, ‘Akash’: 4, ‘Manjeet’: 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 *