我有一个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

因此,如果条款,则不需要处罚

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top