2013-02-21 7 views
5

に基づいて辞書で合計値が、私はKey:Values.のPython:条件

値は整数であり、辞書を持っています。条件に基づいて値の合計を取得したいと思います。すべての値> 0(つまり)です。

私はいくつかのバリエーションを試しましたが、残念なことに何も動作していないようです。

+1

http://stackoverflow.com/questions/11692613/python-sum-values-in-dictionary – user1929959

答えて

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

各値を反復処理し、それが0(または任意のあなたの状態がある)よりも大きい場合、加算、(Pythonの3.xの発電機を返す)辞書にvalues方法を使用してみてください:

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

+0

@abarnertそれはあなたから来て、それはかなりの賛辞です、ありがとう:) – RocketDonkey

+0

素晴らしい。ありがとう。 – user2097496