2013-02-21 3 views
5

에 따라 사전에 합계 값이 나는 Key:Values.파이썬 : 조건

값은 정수가있는 사전을 가지고있다. 조건에 따라 값의 합계를 얻고 싶습니다. 모든 값> 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보다 큰 경우 (또는 조건이 무엇이든지) 각각의 값을 반복하고 합산 (파이썬 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