最近、 collections.Counter()クラスについて学びました。これはきちんとした (そして速い??) ものを数える方法なので、使い始めました。
しかし、タプルでカウントを更新しようとすると、実際にはそれをシーケンスとして扱い、挿入した回数をカウントする代わりに、タプル内の各項目のカウントを更新するという事実により、最近プログラムでバグを検出しました。その特定のタプル。
たとえば、次のように実行すると:
import collections
counter = collections.Counter()
counter.update(('user1', 'loggedin'))
counter.update(('user2', 'compiled'))
counter.update(('user1', 'compiled'))
print counter
あなたは得るでしょう:
Counter({'compiled': 2, 'user1': 2, 'loggedin': 1, 'user2': 1})
結果として。Counter() でタプルをカウントする方法はありますか? 文字列を連結できますが、これは... 醜いです。名前付きタプルを使用できますか? 独自の非常に単純な辞書カウンターを実装しますか? 何が一番いいのかわからない。