Python – значения суммы в словаре
У меня есть довольно простой список:
example_list = [ {'points': 400, 'gold': 2480}, {'points': 100, 'gold': 610}, {'points': 100, 'gold': 620}, {'points': 100, 'gold': 620} ]
Как я могу суммировать все золотые ценности? Я ищу хороший сингл.
- Изменение списка при повторении
- Глубоко скопировать список в Python
- Добавление значения в один список в словаре добавляет значение ко всем спискам в словаре
- Инициация нескольких списков Python
- Python - сортировка элементов в списке списков
Теперь я использую этот код (но это не лучшее решение):
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
- Изменить расстояние, например, Левенштейна с учетом близости на клавиатуре