Python: convierte la lista de diccionarios en la lista de valores del diccionario

Dada una lista de diccionarios, convertir a diccionario con la misma clave asignada con todos los valores en una lista de valores.

Entrada : test_list = [{“Gfg”: 6, “es”: 9, “mejor”: 10},
{“Gfg”: 8, “es”: 11, “mejor”: 19}]
Salida : {‘Gfg ‘: [6, 8], ‘es’: [9, 11], ‘mejor’: [10, 19]}
Explicación : 6, 8 de «Gfg» asignados como lista de valores, de manera similar a todos los demás.

Entrada : test_list = [{“Gfg”: 6, “mejor”: 10},
{“Gfg”: 8, “mejor”: 19}]
Salida : {‘Gfg’: [6, 8], ‘mejor’: [10, 19]}
Explicación : Igual que arriba, conversión.

Método #1: Usar bucle

Esta es una forma bruta de resolver este problema. En esto, iteramos a través de todos los diccionarios, extraemos cada clave y la convertimos al diccionario requerido en bucles anidados.

Python3

# Python3 code to demonstrate working of 
# Convert list of dictionaries to Dictionary Value list
# Using loop
from collections import defaultdict
  
# initializing lists
test_list = [{"Gfg" : 6, "is" : 9, "best" : 10}, 
             {"Gfg" : 8, "is" : 11, "best" : 19},
             {"Gfg" : 2, "is" : 16, "best" : 10},
             {"Gfg" : 12, "is" : 1, "best" : 8},
             {"Gfg" : 22, "is" : 6, "best" : 8}]
  
# printing original list
print("The original list : " + str(test_list))
  
# using loop to get dictionaries
# defaultdict used to make default empty list 
# for each key
res = defaultdict(list)
for sub in test_list:
    for key in sub:
        res[key].append(sub[key])
      
# printing result 
print("The extracted dictionary : " + str(dict(res)))
Producción

The original list : [{'Gfg': 6, 'is': 9, 'best': 10}, {'Gfg': 8, 'is': 11, 'best': 19}, {'Gfg': 2, 'is': 16, 'best': 10}, {'Gfg': 12, 'is': 1, 'best': 8}, {'Gfg': 22, 'is': 6, 'best': 8}]
The extracted dictionary : {'Gfg': [6, 8, 2, 12, 22], 'is': [9, 11, 16, 1, 6], 'best': [10, 19, 10, 8, 8]}

Método #2: Uso de comprensión de lista + comprensión de diccionario

La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, usamos la comprensión del diccionario para construir el diccionario y la comprensión de la lista se usa para extraer valores de la lista original.

Python3

# Python3 code to demonstrate working of 
# Convert list of dictionaries to Dictionary Value list
# Using list comprehension + dictionary comprehension
from collections import defaultdict
  
# initializing lists
test_list = [{"Gfg" : 6, "is" : 9, "best" : 10}, 
             {"Gfg" : 8, "is" : 11, "best" : 19},
             {"Gfg" : 2, "is" : 16, "best" : 10},
             {"Gfg" : 12, "is" : 1, "best" : 8},
             {"Gfg" : 22, "is" : 6, "best" : 8}]
  
# printing original list
print("The original list : " + str(test_list))
  
# dictionary and list comprehension 
# for shorthand to solution of problem
res = defaultdict(list)
{res[key].append(sub[key]) for sub in test_list for key in sub} 
      
# printing result 
print("The extracted dictionary : " + str(dict(res)))
Producción

The original list : [{'Gfg': 6, 'is': 9, 'best': 10}, {'Gfg': 8, 'is': 11, 'best': 19}, {'Gfg': 2, 'is': 16, 'best': 10}, {'Gfg': 12, 'is': 1, 'best': 8}, {'Gfg': 22, 'is': 6, 'best': 8}]
The extracted dictionary : {'Gfg': [6, 8, 2, 12, 22], 'is': [9, 11, 16, 1, 6], 'best': [10, 19, 10, 8, 8]}

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 *