Dada la lista de diccionarios, nuestra tarea es escribir un programa en Python para extraer la media de todas las claves.
Entrada: test_list = [{‘gfg’: 34, ‘es’: 8, ‘mejor’: 10},
{‘gfg’: 1, ‘for’: 10, ‘geeks’: 9, ‘and’: 5, ‘best’: 12},
{‘geeks’: 8, ‘buscar’: 3, ‘gfg’: 3, ‘mejor’: 8}]
Salida: {‘gfg’: 12.666666666666666, ‘es’: 8, ‘mejor’: 10, ‘para’: 10, ‘geeks’: 8.5, ‘y’: 5, ‘buscar’: 3}
Explicación: el mejor tiene 3 valores, 10, 8 y 12, su media calculada en 10, por lo tanto, en el resultado.
Entrada: test_list = [{‘gfg’: 34, ‘es’: 8, ‘mejor’: 10},
{‘gfg’: 1, ‘para’: 10, ‘y’: 5, ‘mejor’: 12},
{ ‘buscar’: 3, ‘gfg’: 3, ‘mejor’: 8}]
Salida: {‘gfg’: 12.666666666666666, ‘es’: 8, ‘mejor’: 10, ‘para’: 10, ‘y’: 5, ‘buscar’: 3}
Explicación: el mejor tiene 3 valores, 10, 8 y 12, su media calculada en 10, por lo tanto, en el resultado.
En esto, para extraer cada lista se usa un bucle y todos los valores se suman y memorizan usando un diccionario. La media se extrae más tarde dividiendo por la aparición de cada clave.
Python3
# Python3 code to demonstrate working of # Cumulative Keys Mean in Dictionary List # Using loop + mean() from statistics import mean # initializing list test_list = [{'gfg' : 34, 'is' : 8, 'best' : 10}, {'gfg' : 1, 'for' : 10, 'geeks' : 9, 'and' : 5, 'best' : 12}, {'geeks' : 8, 'find' : 3, 'gfg' : 3, 'best' : 8}] # printing original list print("The original list is : " + str(test_list)) res = dict() for sub in test_list: for key, val in sub.items(): if key in res: # combining each key to all values in # all dictionaries res[key].append(val) else: res[key] = [val] for key, num_l in res.items(): res[key] = mean(num_l) # printing result print("The Extracted average : " + str(res))
Producción:
La lista original es: [{‘gfg’: 34, ‘is’: 8, ‘best’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9, ‘and’: 5 , ‘mejor’: 12}, {‘geeks’: 8, ‘buscar’: 3, ‘gfg’: 3, ‘mejor’: 8}]
El promedio extraído: {‘gfg’: 12.666666666666666, ‘es’: 8, ‘mejor’: 10, ‘para’: 10, ‘geeks’: 8.5, ‘y’: 5, ‘buscar’: 3}
Método #2: Usando defaultdict() + mean()
En este, la tarea de memorizar se hace usando defaultdict(). Esto reduce una verificación condicional y hace que el código sea más conciso.
Python3
# Python3 code to demonstrate working of # Cumulative Keys Mean in Dictionary List # Using defaultdict() + mean() from statistics import mean from collections import defaultdict # initializing list test_list = [{'gfg' : 34, 'is' : 8, 'best' : 10}, {'gfg' : 1, 'for' : 10, 'geeks' : 9, 'and' : 5, 'best' : 12}, {'geeks' : 8, 'find' : 3, 'gfg' : 3, 'best' : 8}] # printing original list print("The original list is : " + str(test_list)) # defaultdict reduces step to memoize. res = defaultdict(list) for sub in test_list: for key, val in sub.items(): res[key].append(val) res = dict(res) for key, num_l in res.items(): # computing mean res[key] = mean(num_l) # printing result print("The Extracted average : " + str(res))
Producción:
La lista original es: [{‘gfg’: 34, ‘is’: 8, ‘best’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9, ‘and’: 5 , ‘mejor’: 12}, {‘geeks’: 8, ‘buscar’: 3, ‘gfg’: 3, ‘mejor’: 8}]
El promedio extraído: {‘gfg’: 12.666666666666666, ‘es’: 8, ‘mejor’: 10, ‘para’: 10, ‘geeks’: 8.5, ‘y’: 5, ‘buscar’: 3}
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