En este artículo, discutiremos cómo convertir una lista de diccionarios en un diccionario de listas.
Método 1: Usando el bucle for
Al iterar en función de la primera clave, podemos convertir la lista de dictados en dictados de lista. Programa de Python para crear una lista de estudiantes de diccionarios
Python3
# create a list of dictionaries # with student data data = [ {'name': 'sravan', 'subjects': ['java', 'python']}, {'name': 'bobby', 'subjects': ['c/cpp', 'java']}, {'name': 'ojsawi', 'subjects': ['iot', 'cloud']}, {'name': 'rohith', 'subjects': ['php', 'os']}, {'name': 'gnanesh', 'subjects': ['html', 'sql']} ] # display data
Producción:
[{'name': 'sravan', 'subjects': ['java', 'python']}, {'name': 'bobby', 'subjects': ['c/cpp', 'java']}, {'name': 'ojsawi', 'subjects': ['iot', 'cloud']}, {'name': 'rohith', 'subjects': ['php', 'os']}, {'name': 'gnanesh', 'subjects': ['html', 'sql']}]
Ejemplo: Convertir lista de diccionario a un diccionario de lista
Python3
# create an empty dictionary dictionary_of_list = {} # for loop to convert list of dict # to dict of list for item in data: name = item['name'] dictionary_of_list[name] = item # display dictionary_of_list
Producción:
{'bobby': {'name': 'bobby', 'subjects': ['c/cpp', 'java']}, 'gnanesh': {'name': 'gnanesh', 'subjects': ['html', 'sql']}, 'ojsawi': {'name': 'ojsawi', 'subjects': ['iot', 'cloud']}, 'rohith': {'name': 'rohith', 'subjects': ['php', 'os']}, 'sravan': {'name': 'sravan', 'subjects': ['java', 'python']}}
Método 2: usar la comprensión del diccionario
Aquí estamos usando una comprensión de diccionario para convertir una lista de diccionarios en el diccionario de la lista, por lo que estamos pasando la lista como valores basados en claves en el nuevo diccionario.
Sintaxis : {clave: [i[clave] for i in list_of_dictionary] for key in list_of_dictionary[0]}
dónde
- list_of_dictionary es la entrada
- key es la clave en list_of_dictionary
Ejemplo: programa para convertir la lista de estudiantes del diccionario en el diccionario de la lista
Python3
# consider the list of dictionary data = [{'manoj': 'java', 'bobby': 'python'}, {'manoj': 'php', 'bobby': 'java'}, {'manoj': 'cloud', 'bobby': 'big-data'}] # convert into dictionary of list # with list as values print({key: [i[key] for i in data] for key in data[0]})
Producción:
{'manoj': ['java', 'php', 'cloud'], 'bobby': ['python', 'java', 'big-data']}
Método 3: Usar pandas DataFrame
Al usar el marco de datos de pandas, convertiremos la lista de dict en dict of list
Sintaxis : pandas.DataFrame(lista_de_diccionario).to_dict(orientar=”lista”)
Dónde:
- list_of_dictionary es la entrada
- El método to_dict() es convertir en diccionario
- el parámetro orientar es convertir en lista
Ejemplo :
Python3
#import pandas import pandas as pd # consider the list of dictionary data = [{'manoj': 'java', 'bobby': 'python'}, {'manoj': 'php', 'bobby': 'java'}, {'manoj': 'cloud', 'bobby': 'big-data'}] # convert into dictionary of list # with list as values using pandas dataframe pd.DataFrame(data).to_dict(orient="list")
Salida :
{‘bobby’: [‘python’, ‘java’, ‘grandes datos’], ‘manoj’: [‘java’, ‘php’, ‘nube’]}
Método 4: Usando NumPy
Numpy se usa para procesar las arrays, podemos obtener los valores usando la clave o el índice
Python3
# import numpy module import numpy as np # create numpy data data = np.array([(10, 20), (50, 60)], dtype=[('value1', int), ('value2', int)]) # display by using index print(data[0]) # display by using key print(data['value1'])
Producción:
(10, 20) [10 50]
Publicación traducida automáticamente
Artículo escrito por manojkumarreddymallidi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA