2013-02-21 73 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