python: collections リスト内で各要素の数を集計して辞書にする
備忘録です。
リスト内で重複した要素が何個ずつあるのか数え、それをもとに色々処理する。という状況があったのでその方法。
collectionsのCounter(辞書のサブクラス)
こちらを使用すると、例えば、
data = [10, 9, 10, 10, 9, 8]
このようなリストが
Counter({10: 3, 9: 2, 8: 1})
こんな感じで集計できます。
集計したものをもとに元のリストを重複しないものだけにしたり、重複したものだけにしたりして編集をかけることができます。
今回は、重複したものだけにするというタスクの元でこちらを使用。
ちなみに、collectionsを使用しなくても下記で同じことができるなんて!!(1行!!)