Dada la Lista de diccionarios de un solo elemento, agrúpelos en listas de valores de diccionario de acuerdo con valores similares.
Entrada : [{“Gfg”: 3}, {“es”: 8}, {“Gfg”: 18}, {“Mejor”: 33}]
Salida : {‘Gfg’: [3, 18], ‘es ‘: [8], ‘Best’: [33]}
Explicación : Cada tecla convertida a valores de lista y diccionario.Entrada : [{“Gfg”: 3}, {“Gfg”: 8}, {“Gfg”: 18}, {“Best”: 33}]
Salida : {‘Gfg’: [3, 18, 8], ‘Best’: [33]}
Explicación : Cada clave convertida a valores de lista y diccionario.
Método #1: Usar setdefault() + bucle
Esta es la forma bruta en la que se puede realizar esta tarea. En esto, usamos para recorrer todos los valores del diccionario y setdefault() se usa para asignar la clave común a sus correspondientes listas de valores agrupados.
Python3
# Python3 code to demonstrate working of # Group single item dictionaries into List values # Using setdefault() + loop # initializing lists test_list = [{"Gfg" : 3}, {"is": 8}, {"Best": 10}, {"Gfg": 18}, {"Best": 33}] # printing original list print("The original list : " + str(test_list)) res = {} # using loop to loop through each dictionary for idx in test_list: # items() to extract item for key, val in idx.items(): # setdefault performs task of setting empty list value as default res.setdefault(key, []).append(val) # printing result print("The constructed dictionary : " + str(res))
The original list : [{'Gfg': 3}, {'is': 8}, {'Best': 10}, {'Gfg': 18}, {'Best': 33}] The constructed dictionary : {'Gfg': [3, 18], 'is': [8], 'Best': [10, 33]}
Método #2: Usando defaultdict() + * operador + bucle
Esta es otra forma más en la que se puede realizar esta tarea. En esto, usamos defaultdict() para la inicialización de listas vacías. El operador * se usa para desempaquetar el elemento del diccionario y el bucle se usa para recorrer los diccionarios.
Python3
# Python3 code to demonstrate working of # Group single item dictionaries into List values # Using defaultdict() + * operator + loop from collections import defaultdict # initializing lists test_list = [{"Gfg" : 3}, {"is": 8}, {"Best": 10}, {"Gfg": 18}, {"Best": 33}] # printing original list print("The original list : " + str(test_list)) res = defaultdict(list) for ele in test_list: # using * operator to unpack # reducing one loop key, val = tuple(*ele.items()) res[key].append(val) # printing result print("The constructed dictionary : " + str(dict(res)))
The original list : [{'Gfg': 3}, {'is': 8}, {'Best': 10}, {'Gfg': 18}, {'Best': 33}] The constructed dictionary : {'Gfg': [3, 18], 'is': [8], 'Best': [10, 33]}
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