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クラスは、他の言語のバッグまたはマルチセットに似ています。

于 2012-12-20T01:34:13.073 に答える