1

我有一本字典

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

我需要输出以下内容

1 has occurred 2 times
2 has occurred 1 times

做这个的最好方式是什么。

4

2 回答 2

6

这很容易(并且有效)完成collections.Counter(),它旨在(毫不奇怪)计算事物:

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

这为您提供了一个类似字典的对象,可以轻松地用于生成所需的输出。

于 2012-12-20T01:31:26.583 回答
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})

文档中:

Counter 是用于计算可散列对象的 dict 子类。它是一个无序集合,其中元素存储为字典键,它们的计数存储为字典值。计数可以是任何整数值,包括零计数或负计数。Counter 类类似于其他语言中的 bag 或 multisets。

于 2012-12-20T01:34:13.073 回答