要素数の計算を便利にするCounter

入門Python3 5.5.2


前回の記事で要素数の計算をするプログラムを実装しましたが、実はまったく同じことをしてくれるライブラリがあるようです。

from collections import Counter

ary = ['foo','bar','baz','foo','hoge']

counter = Counter(ary)

print(counter)
$ py main.py
Counter({'foo': 2, 'bar': 1, 'baz': 1, 'hoge': 1})

便利ですね、他にもこのカウント同士をマージしたりとかもできるようです。

from collections import Counter

ary1 = ['foo','bar','baz','foo','hoge']
ary2 = ['foo','hoge','muge']

counter1 = Counter(ary1)
counter2 = Counter(ary2)
counter3 = counter1 + counter2 # マージする

print(counter1)
print(counter2)
print(counter3)
$ py main.py
Counter({'foo': 2, 'bar': 1, 'baz': 1, 'hoge': 1})
Counter({'foo': 1, 'hoge': 1, 'muge': 1})
Counter({'foo': 3, 'hoge': 2, 'bar': 1, 'baz': 1, 'muge': 1})

これも便利ですね。今後使い道があるかもしれません。