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))
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))
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