Python: convierte la lista de diccionarios en una lista de listas

A veces, mientras trabajamos con datos de Python, podemos tener problemas en los que necesitamos convertir la lista de diccionarios en una lista de listas, esto se puede simplificar agregando las claves solo una vez si son repetitivas como en la mayoría de los registros, esto ahorra espacio en la memoria . Este tipo de problema puede tener aplicaciones en el dominio del desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada : test_list = [{‘Gfg’: 123, ‘mejor’: 10}, {‘Gfg’: 51, ‘mejor’: 7}]
Salida : [[‘Gfg’, ‘mejor’], [123, 10 ], [51, 7]]

Entrada : test_list = [{‘Gfg’: 12}]
Salida : [[‘Gfg’], [12]]

Método n.º 1: Uso de bucle +enumerate()
La combinación de los métodos anteriores se puede utilizar para realizar esta tarea. En esto, realizamos la tarea de iterar usando bucle y fuerza bruta con la ayuda de enumerate() para realizar la adición adecuada en la lista de resultados.

# Python3 code to demonstrate working of 
# Convert List of Dictionaries to List of Lists
# Using loop + enumerate()
  
# initializing list
test_list = [{'Nikhil' : 17, 'Akash' : 18, 'Akshat' : 20},
             {'Nikhil' : 21, 'Akash' : 30, 'Akshat' : 10},
             {'Nikhil' : 31, 'Akash' : 12, 'Akshat' : 19}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Convert List of Dictionaries to List of Lists
# Using loop + enumerate()
res = []
for idx, sub in enumerate(test_list, start = 0):
    if idx == 0:
        res.append(list(sub.keys()))
        res.append(list(sub.values()))
    else:
        res.append(list(sub.values()))
  
# printing result 
print("The converted list : " + str(res)) 
Producción :

La lista original es: [{‘Akash’: 18, ‘Nikhil’: 17, ‘Akshat’: 20}, {‘Akash’: 30, ‘Nikhil’: 21, ‘Akshat’: 10}, {‘Akash’ : 12, ‘Nikhil’: 31, ‘Akshat’: 19}]
La lista convertida: [[‘Akash’, ‘Nikhil’, ‘Akshat’], [18, 17, 20], [30, 21, 10] , [12, 31, 19]]

Método #2: Usar la comprensión de listas
Esta tarea se puede resolver en una línea usando la comprensión de listas. En esto, extraemos las claves inicialmente usando claves() y valores usando valores().

# Python3 code to demonstrate working of 
# Convert List of Dictionaries to List of Lists
# Using list comprehension
  
# initializing list
test_list = [{'Nikhil' : 17, 'Akash' : 18, 'Akshat' : 20},
             {'Nikhil' : 21, 'Akash' : 30, 'Akshat' : 10},
             {'Nikhil' : 31, 'Akash' : 12, 'Akshat' : 19}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Convert List of Dictionaries to List of Lists
# Using list comprehension
res = [[key for key in test_list[0].keys()], *[list(idx.values()) for idx in test_list ]]
  
# printing result 
print("The converted list : " + str(res)) 
Producción :

La lista original es: [{‘Akash’: 18, ‘Nikhil’: 17, ‘Akshat’: 20}, {‘Akash’: 30, ‘Nikhil’: 21, ‘Akshat’: 10}, {‘Akash’ : 12, ‘Nikhil’: 31, ‘Akshat’: 19}]
La lista convertida: [[‘Akash’, ‘Nikhil’, ‘Akshat’], [18, 17, 20], [30, 21, 10] , [12, 31, 19]]

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 *