Python – sum de valores en el diccionario

Tengo una lista bastante simple:

example_list = [ {'points': 400, 'gold': 2480}, {'points': 100, 'gold': 610}, {'points': 100, 'gold': 620}, {'points': 100, 'gold': 620} ] 

¿Cómo puedo sumr todos los valores de oro ? Estoy buscando buen oneliner

Ahora estoy usando este código (pero no es la mejor solución):

 total_gold = 0 for item in example_list: total_gold += example_list["gold"] 

 sum(item['gold'] for item in myLIst) 

Si eres consciente de la memoria:

 sum(item['gold'] for item in example_list) 

Si eres extremadamente consciente del tiempo:

 sum([item['gold'] for item in example_list]) 

En la mayoría de los casos, simplemente use la expresión del generador, ya que el aumento de rendimiento solo se nota en un conjunto de datos muy grande / ruta de código muy candente.

Consulte esta respuesta para obtener una explicación de por qué debe evitar el uso del mapa.

Vea esta respuesta para algunas comparaciones de tiempo real de la comprensión de listas frente a las expresiones generadoras.

Si prefieres el map , esto también funciona:

  import operator total_gold = sum(map(operator.itemgetter('gold'),example_list)) 

Pero creo que el generador publicado por gddc es significativamente mejor. Esta respuesta es solo para señalar la existencia de operator.itemgetter .