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