Python:根据条件对字典中的值求和

6

我有一个字典,它包含了Key:Values

这些值都是整数。我想根据一个条件对这些值求和...比如所有大于0的值。

我已经尝试了几种方法,但不幸的是没有任何一种方法能够正常工作。


1
请参见以下链接:https://dev59.com/WGgt5IYBdhLWcg3w8h_e - Mihai8
2个回答

11
尝试在字典上使用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

哇,这可能是我见过的最简明扼要的英文解释示例,它以如此明显的方式映射到生成器表达式,以至于您甚至不需要说这就是您正在做的事情。希望我能给出超过+1的评价。 - abarnert
@abarnert,从你这里听到这样的赞美,我感到非常荣幸,谢谢 :) - RocketDonkey

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接