Counter
オブジェクトがあるとしましょう:Counter({'test': 2, 'this': 1, 'is': 1})
次の方法でこのオブジェクトを反復処理したいと思います。
c = Counter({'test': 2, 'this': 1, 'is': 1})
for i,s in my_counter_iterator(c):
print i, ":", s
>> 1 : ['this', 'is']
>> 2 : ['test']
それを効率的に行うにはどうすればよいですか (このコードは、リクエストごとに Web サーバーで実行する必要があります...)。
編集
私はこれを試しましたが、もっと効率的な方法があると感じています。ある?
from itertools import groupby
for k,g in groupby(sorted(c.keys(), key=lambda x: c[x]),key=lambda x: c[x]):
print k, list(g)
1 ['this', 'is']
2 ['test']