2013-02-21 77 views
5

我有一本字典,它有Key:Values.Python:基於條件的詞典中的求和值

這些值是整數。我想得到一個基於條件的值的總和......說所有值> 0(即)。

我試過一些變化,但似乎沒有任何工作不幸。

+1

請參閱http://stackoverflow.com/questions/11692613/python-sum-values-in-dictionary – user1929959 2013-02-21 23:39:00

回答

1
>>> a = {'a' : 5, 'b': 8} 
>>> sum(value for _, value in a.items() if value > 0) 
9

嘗試使用詞典中的values方法(其在Python 3.x的返回一個發生器),通過每個迭代值和求和,如果它是大於0(或任何你條件):

In [1]: d = {'one': 1, 'two': 2, 'twenty': 20, 'negative 4': -4} 

In [2]: sum(v for v in d.values() if v > 0) 
Out[2]: 23 
+0

哇,這可能是我見過的一個簡潔的英文簡單解釋映射到生成器表達式的最佳示例以這樣一種明顯的方式,你甚至不需要說這就是你正在做的。希望我可以給+1。 – abarnert 2013-02-22 00:51:31

+0

@abarnert來自你,這是相當恭維,謝謝:) – RocketDonkey 2013-02-22 02:49:48

+0

真棒。謝謝。 – user2097496 2013-02-24 00:11:42