Как суммировать все значения в словаре?

Предположим, у меня есть словарь, в котором ключи сопоставляются с целыми числами:

d = {'key1': 1,'key2': 14,'key3': 47} 

Существует ли синтаксически минималистический способ возврата суммы значений в d -ie 62 в этом случае?

Как и следовало ожидать:

 sum(d.values()) 

В Python <3 вам может понадобиться вместо этого использовать itervalues (который не создает временный список).

В Python 2 вы можете избежать создания временной копии всех значений с помощью itervalues() словаря itervalues() , который возвращает iterator ключей словаря:

 sum(d.itervalues()) 

В Python 3 вы можете просто использовать d.values() потому что этот метод был изменен для этого (и itervalues() был удален, поскольку он больше не нужен).

Чтобы упростить запись независимого от версии кода, который всегда выполняет итерации по значениям ключей словаря, может быть полезной полезная функция:

 import sys def itervalues(d): return iter(getattr(d, ('itervalues', 'values')[sys.version_info[0]>2])()) sum(itervalues(d)) 

По сути, это то, что делает six модhive Беньямина Петерсона.

Конечно, есть. Вот способ суммирования значений словаря.

 >>> d = {'key1':1,'key2':14,'key3':47} >>> sum(d.values()) 62 
 d = {'key1': 1,'key2': 14,'key3': 47} sum1 = sum(d[item] for item in d) print(sum1) 

вы можете сделать это, используя цикл for

Давайте будем гением компьютера.