Как сложить все значения в словаре?
Допустим, у меня есть словарь, в котором ключи отображаются на целые числа, такие как:
Есть ли синтаксически минималистичный способ вернуть сумму значений в d -ie 62 в этом случае?
11 ответов
Как и следовало ожидать:
В Python itervalues вместо этого (который не создает временный список).
В Python 2 вы можете избежать создания временной копии всех значений, используя itervalues() метод dictionary, который возвращает итератор ключей словаря:
В Python 3 вы можете просто использовать d.values() потому что этот метод был изменен, чтобы сделать это (и itervalues() был удален, так как он больше не был нужен).
Для облегчения написания независимого от версии кода, который всегда перебирает значения ключей словаря, может быть полезна служебная функция:
Как сложить значения в словаре python
Скажем, у меня есть словарь, в котором ключи сопоставляются с целыми числами:
Есть ли синтаксически минималистический способ вернуть сумму значений в d -i.e. 62 в этом случае?
3 ответа
Как и следовало ожидать:
В Python < 3 вместо этого вы можете использовать itervalues (который не создает временный список).
В Python 2 вы можете избежать временной копии всех значений с помощью метода словаря itervalues() , который возвращает итератор ключей словаря:
В Python 3 вы можете просто использовать d.values() , потому что этот метод был изменен для этого (и itervalues() был удален, поскольку он больше не нужен).
Чтобы упростить запись независимого от версии кода, который всегда выполняет итерации по значениям ключей словаря, полезная функция может быть полезна:
Как сложить все значения в словаре?
Допустим, у меня есть словарь, в котором ключи отображаются на целые числа, такие как:
Есть ли синтаксически минималистичный способ вернуть сумму значений в d — т.е. 62 в этом случае?
7 ответов
Как и следовало ожидать:
Sum (d.values ()) — «d» -> Ваш словарь Переменная
Конечно, есть. Вот способ суммировать значения словаря.
Я чувствую, что sum(d.values()) — самый эффективный способ получить сумму.
Вы также можете попробовать функцию Reduce для вычисления суммы вместе с лямбда-выражением:
Ответ phihag (и аналогичные) не будет работать в python3.
Для Python 3:
Обновить! Есть жалобы, что это не работает! Я просто прикрепляю скриншот из моего терминала. Может быть некоторое несоответствие в версиях и т. Д.
Вы можете сделать это с помощью цикла for
В Python 2 вы можете избежать создания временной копии всех значений, используя метод словаря itervalues() , который возвращает итератор ключей словаря:
В Python 3 вы можете просто использовать d.values() , потому что этот метод был изменен для этого (и itervalues() был удален, поскольку он больше не нужен).
Чтобы упростить написание независимого от версии кода, который всегда перебирает значения ключей словаря, может быть полезна служебная функция:
Python — sum values in dictionary
How can I sum all gold values? I’m looking for nice oneliner.
Now I’m using this code (but it’s not the best solution):
5 Answers 5
If you’re memory conscious:
If you’re extremely time conscious:
In most cases just use the generator expression, as the performance increase is only noticeable on a very large dataset/very hot code path.
See this answer for an explanation of why you should avoid using map.
See this answer for some real-world timing comparisons of list comprehension vs generator expressions.
If you prefer map , this works too:
But I think the generator posted by g.d.d.c is significantly better. This answer is really just to point out the existence of operator.itemgetter .
30 seconds after he did. I originally deleted it, but ever since I got the stupid moderator tools, I can still see my deleted answer. It was bugging me, so I thought to myself, there has to be another somewhat clean way to do this that illustrates something useful . I probably should just delete it though . I don't know. (I'm open to suggestions).
Как посчитать сумму значений словаря в Python
Python предлагает широкий спектр возможностей для работы со словарями, которые являются неотъемлемой частью языка. В этой статье мы сфокусируемся на том, как можно посчитать сумму значений словаря.
Вычисление суммы значений словаря
Python предоставляет встроенную функцию sum() , которая может быть использована для вычисления суммы значений в словаре. Функция dict.values() используется для получения всех значений словаря.
Вычисление суммы значений, удовлетворяющих определенному условию
В некоторых случаях может потребоваться вычислить сумму значений словаря, которые удовлетворяют определенному условию. Это можно сделать с использованием генераторов списков и функции sum() .
Вычисление суммы на основе ключей
Можно также вычислять сумму значений, ключи которых удовлетворяют определенному условию.
Вычисление суммы значений словаря с использованием функции reduce()
Функция reduce() из модуля functools может быть использована для вычисления суммы значений словаря.
Заключение
Подсчет суммы значений словаря — это распространенная задача при работе с данными в Python. С помощью встроенных функций Python и некоторых простых техник вы можете легко решить эту задачу, будь то подсчет общей суммы всех значений в словаре или суммы значений, удовлетворяющих определенному условию.
Подпишись на наш telegram-канал FullStacker
и получай свежие статьи, мануалы и шпаргалки по Python первым!
Как просуммировать значения в словаре?
Пожалуйста, подскажите, как просуммировать значения voices. Подозреваю, что их нужно не аппендить, а сразу складывать, но не знаю как это сделать.
Как в словаре сравнить 2 значения?
Доброго утра всем! Возникла такая проблема. У меня есть словарь. Ключ этого словаря строка, а.
Как просуммировать значения в столбцах.
Проблема такая: имеются стобцы в таблице содержащие числовые значения и значения NULL. При.
Как вывести значения в словаре по ключу
Всем привет. Допустим есть словарь, где значением является экземпляр класса. Как вывести значения.
Как просуммировать значения одинаковых продуктов?
Добрый день, прошу помощи. Есть значения продаж определенных продуктов в различные дни. Каким.
Как просуммировать значения подстановочных полей?
Добрый день! Требуется помощь клуба знатоков! Пытаюсь сделать табель учета рабочего времени.