比方說,我在該鍵映射到整數像一本字典:如何彙總字典中的所有值?
d = {'key1': 1,'key2': 14,'key3': 47}
是否有返回d
-i.e.值之和的語法簡約的方式62
在這種情況下?
比方說,我在該鍵映射到整數像一本字典:如何彙總字典中的所有值?
d = {'key1': 1,'key2': 14,'key3': 47}
是否有返回d
-i.e.值之和的語法簡約的方式62
在這種情況下?
正如你所期望:
sum(d.values())
在Python < 3,您可能需要使用itervalues
代替(不建立一個臨時的列表)。
好吧,`Python 2.7.12`也適用於'sum(d.values())` – LancelotHolmes 2017-01-17 01:14:04
當然有。這是總結字典值的一種方法。
>>> d = {'key1':1,'key2':14,'key3':47}
>>> sum(d.values())
62
在Python 2,你能避免使用itervalues()
字典法,該方法返回字典的鍵的迭代使所有的值的臨時副本:
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
模塊一樣。
只是爲了好玩:根據[`reduce`]實現`sum``(http://docs.python.org/library/functions.html) - `reduce`是一個更一般的形式(例如` sum`,`min`和`max`都可以用`reduce`來表示),並且可以很容易地解決其他問題(例如`product`)。 – 2011-02-02 23:53:38
Guido的說法呢 - 我想我正確地記得 - 減少會消失嗎?我和你在一起。爲什麼要從語言中刪除它? – octopusgrabbus 2012-06-16 19:04:46