Python: convierte la lista de diccionarios en diccionario de listas

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *