Python – значения суммы в словаре

У меня есть довольно простой список:

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

Как я могу суммировать все золотые ценности? Я ищу хороший сингл.

Теперь я использую этот код (но это не лучшее решение):

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

3 Solutions collect form web for “Python – значения суммы в словаре”

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

Если вы осознаете память:

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

Если вы очень заняты временем:

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

В большинстве случаев просто используйте выражение генератора, так как увеличение производительности заметно только на очень большом пути к набору данных / очень горячего кода.

См. Этот ответ для объяснения того, почему вам следует избегать использования карты.

См. Этот ответ для некоторых сопоставлений времени в реальном времени по сравнению с генераторными выражениями.

Если вы предпочитаете map , это тоже работает:

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

Но я думаю, что генератор, отправленный gddc, значительно лучше. Этот ответ на самом деле просто указывает на существование operator.itemgetter .

  • Инициализация списка Python с использованием операторов множественного диапазона
  • Большинство питоновских способ построить словарь из единого списка
  • Как выполнить поиск по списку кортежей
  • Поддерживать список, отсортированный по нескольким атрибутам?
  • Есть ли лучший способ перебора двух списков, получая по одному элементу из каждого списка для каждой итерации?
  • Создать список словарей Python
  • + и + = разные операторы?
  • Как создать двух циклов для представления в python
  • Python - лучший язык программирования в мире.