0

我有一本字典如下:

adict = {'instr1' : "yes", 'instr2' : "yes", 'instr3' : "yes", 'instr4' : "no"}

有没有一种简单的方法来获取字典中“是”的数量?

4

2 回答 2

3

您可以使用sum和生成器表达式:

>>> sum(1 for x in adict.itervalues() if x == 'yes')
3

,所以True == 1这也是有效的:

sum( x == 'yes' for x in adict.itervalues())

另一个选项是list.count,这将比 快sum(),但会创建内存中所有值的列表:

>>> adict.values().count('yes')
3
于 2013-11-10T20:50:20.677 回答
3

您可以使用collections.Counter

>>> adict = {'instr1' : "yes", 'instr2' : "yes", 'instr3' : "yes", 'instr4' : "no"}
>>> import collections
>>> collections.Counter(adict.values())
Counter({'yes': 3, 'no': 1})
于 2013-11-10T20:49:02.517 回答