PythonのCounterの使い方と代替案

Pocket

Pythonで配列の要素ごとの数を調べる方法をまとめます。

collectionsのCounterを使う

標準ライブラリのcollectionsを使います。
Counterというサブクラスがありこれを使うと要素を数えられます。

import collections

a=["apple","banana","carrot","apple"]
print(collections.Counter(a))

a="abca"
print(collections.Counter(a))

実行結果
Counter({'apple': 2, 'banana': 1, 'carrot': 1})
Counter({'a': 2, 'b': 1, 'c': 1})

関数を書く

collectionsというライブラリは標準ですが、Counter以外の使い道がわかりません。
であれば関数を書いてしまえばいいんじゃないかということで書いてみました。

def kaunta(parts):
  results={}
  for part in parts:
    if part in results:
      results[part]+=1
    else:
      results[part]=1
  return results

a=["apple","banana","carrot","apple"]
print(kaunta(a))

a="abca"
print(kaunta(a))

実行結果
{'apple': 2, 'banana': 1, 'carrot': 1}
{'a': 2, 'b': 1, 'c': 1}

別の関数

def kaunta_other(parts):
  temps=set(parts)
  results={}
  for temp in temps:
    results[temp]=0
  for part in parts:
    results[part]+=1
  return results

[ 2023年7月5日 | カテゴリー: Python | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報