58

collections.CounterPython 2.7 では、インスタンスを降順で繰り返し処理したいと考えています。

>>> import collections
>>> c = collections.Counter()
>>> c['a'] = 1
>>> c['b'] = 999
>>> c
Counter({'b': 999, 'a': 1})
>>> for x in c:
        print x
a
b

上記の例では、要素が Counter インスタンスに追加された順序で繰り返されているように見えます。

リストを最高から最低まで繰り返し処理したいと思います。Counter の文字列表現がこれを行うことがわかりましたが、それを行うための推奨される方法があるかどうか疑問に思っています。

4

3 に答える 3

62

反復しc.most_common()て、目的の順序でアイテムを取得できます。のドキュメントCounter.most_common()も参照してください。

例:

>>> c = collections.Counter(a=1, b=999)
>>> c.most_common()
[('b', 999), ('a', 1)]
于 2012-06-14T16:06:17.167 に答える