Python dictionary / collections.Counter():データ要素の数え方、現時点のまとめ

dictionary繋がりでdictionaryとcollections.Counter()の整理(2/14:タイトル変更しました)

要素数を数える

例えば、文字”lkfjaslfkjalg;km,:hearnr”を含むtxがあり、txが含む要素の数はそれぞれ幾つか数えたい場合、dictionaryを使う事で数える事が可能。

dictionary型の空データctを作り、該当要素がctになければct[要素] = 1として数え始める。
ctに該当要素があればその要素数を+1する。

この方法は細かい設定をして集計する場合に使いやすい。例えばアルファベットだけをカウントしたい場合。

アルファベットだけを数えたい

for loopに判定するコードを追加する事で、アルファベットだけを数えられる。

ただ全要素を数える時に使えるcollections.Counter()

ただ全要素を数える時には、collections.Counter()で同様の事ができる。

collections.Counter()は要素をkeyに、カウントした数字をvalueにしたdictionary型のデータ。

カウント数(value)はゼロでも負でも可能。ゼロは分かるが負ってどう言う状況だろうか?分かったら追記する。

collections.Counter()型データの作成方法

collections.Counter()の機能

collections.Counter()を使うと用意された機能を使用できる。

elements() : 集計したリスト通りの数要素を出力

集計リストの順番で要素をその個数分出力します。

ただct.elements()を実行してもこのコードはiteratorを返すだけですので、何が出力されるのか、中身を見る為、list “lst”に一ずつappendしてから出力。

実際の出力順が元々のctの順番通りではありませんが、要素が数えられた個数分出力されている事は分かります。実際の運用上はこのlstをソートして使うのが使いやすい。

因みに、valueが0や負の数字の場合、無視される。

most_common([n]):一番多い要素を出力

一番多い要素からn個分をkey:valueペアのデータで出力。
nが省略されたりNoneの場合全データが返ってくる。
同じ数だった場合、並んだ順番で左の物が先。

Counterオブジェクトの使用例

今後随時更新します。