我有一个python字典对象,其中包含每个键的布尔值,例如:
d = {'client1': True, 'client2': False}
计算字典中True值数量的最简单,最简洁的方法是什么?
答案 0 :(得分:22)
为清楚起见:
num_true = sum(1 for condition in d.values() if condition)
为了简洁(这是有效的,因为True是int的子类,值为1):
num_true = sum(d.values())
答案 1 :(得分:3)
sum(d.values())
答案 2 :(得分:2)
a.values().count(True)
答案 3 :(得分:1)
在Python 2.*
中,sum(d.itervalues())比许多人提出的sum(d.values())
略微简洁(4个字符;-),但避免不必要地实现值列表和所以当你有一个大词典来处理时,可以节省内存(可能还有时间)。
正如一些人所指出的,这很好用,因为bools是int(特别是子类):
>>> False==0
True
>>> False+True
1
因此,不需要通谕if
条款。