Python字典计数

时间:2012-12-20 01:29:24

标签: python dictionary

我有一本字典

a={}
a['A']=1
a['B']=1
a['C']=2

我需要输出以下内容

1 has occurred 2 times
2 has occurred 1 times

最好的方法是什么。

2 个答案:

答案 0 :(得分:6)

这很容易(并且有效地)使用collections.Counter()来完成,它旨在(不出所料)计算事物:

>>> import collections
>>> a = {"A": 1, "B": 1, "C": 2}
>>> collections.Counter(a.values())
Counter({1: 2, 2: 1})

这为您提供了一个类似字典的对象,可以简单地用于生成您想要的输出。

答案 1 :(得分:1)

使用Counter类:

from collections import Counter

a = {}
a["A"] = 1
a["B"] = 1
a["C"] = 2

c = Counter(a.values())

c
=> Counter({1: 2, 2: 1})

来自documentation

  

Counter是用于计算可哈希对象的dict子类。它是一个无序集合,其中元素存储为字典键,其计数存储为字典值。计数允许为任何整数值,包括零或负计数。 Counter类与其他语言的包或多重集类似。