みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
当ブログでは、非エンジニア&Windowsユーザーのためのお仕事へのPython活用法について色々とお伝えしております。
さて、今回のテーマはカウントです。
テキスト、csv、Excel…仕事では色々な形式のデータを取り扱いますが、カウントすること多いですよね。
普通はエクセルを使って、COUNTIF関数とか使って集計するのですが、Pythonで「辞書」というタイプのデータを使うと、エクセル立ち上げなくてもサクっと集計できちゃったりします。
今回から、その辞書の便利な使い方を初心者向けにお伝えしていきます。
まず、手始めとしてPythonの辞書とは何か、また辞書を使ったリストの値のカウントをする超簡単なスクリプトについてお伝えします。
では、行ってみましょう!
おにぎりの出現回数を知りたい
例えば、以下のようなリストがあるとします。
onigiris = ['シャケ', 'ツナ', 'ツナ', 'コンブ', 'シャケ', 'オカカ', 'シャケ', 'ツナ', 'コンブ', 'シャケ']
各おにぎりの種類ごとに、何回登場するかカウントをするプログラムを作りたいのです。
どのようにしますか?
…というのが今回のお題です。
答えを出しちゃいますと、例えばこんなスクリプトを作ればOKです。
onigiris = ['シャケ', 'ツナ', 'ツナ', 'コンブ', 'シャケ', 'オカカ', 'シャケ', 'ツナ', 'コンブ', 'シャケ']
count = {'シャケ': 0, 'ツナ': 0 ,'コンブ': 0, 'オカカ': 0}
for onigiri in onigiris:
count[onigiri] +=1
print(count)
スクリプトを実行すると
という結果が得られます。
辞書とは何か
辞書というのは、値の集合を扱うデータ型で、含まれる値をkeyと呼ばれる文字列と紐づけた形で格納をすることができます。
そして、その格納されている値をvalueと言います。
リストはインデックスと呼ばれる数値に紐づけて値を格納できましたが、辞書の場合は好きな文字列を指定できるのです。
例えば、以下の辞書であれば、’シャケ’というキーで4という数値を、’ツナ’というキーで3という数値を…という形で保管しています。
{'シャケ': 4, 'ツナ': 3, 'コンブ': 2, 'オカカ': 1}
値は数値だけなく、文字列や他のデータ型でもOKです。
辞書の記述の方法
冒頭のスクリプトでいうと、2行目が辞書を作成している命令になります。
count = {'シャケ': 0, 'ツナ': 0 ,'コンブ': 0, 'オカカ': 0}
辞書を記述する場合は、全体を波括弧で囲み、「key: value」という形式で、カンマ区切りで指定をします。
ですから、2行目では「シャケ」「ツナ」「コンブ」「オカカ」の各キーに対して0という数値を格納していて辞書を作成して、countという変数に代入しているということになります。
ちなみに、この形式は、他のプログラム言語では、「オブジェクト形式」ともいわれたりしますね。
辞書の値の参照
辞書の値を参照するには、以下のように辞書が格納される変数名に続けて、各括弧内にキーを指定します。
この表現を用いて、辞書の値を代入することができ、それを行っているのがスクリプトの4行目の以下の部分です。
count[onigiri] +=1
変数onigiriが示すキーに対応する値をプラス1しているというわけです。
まとめ
Pythonで辞書を使ってリストの値をカウントする超簡単なスクリプトを紹介しました。
- 辞書はkeyとvalueの組み合わせで複数の値を取り扱うデータ形式
- 辞書の記述は波括弧内に、key: valueの組み合わせをカンマ区切りで指定する
- 変数名に続けて各括弧内にキーを指定することで値を参照する
さて、辞書もリストのようにfor文でループ処理をすることができます。
次回はその方法をお伝えしていきます。
どうぞお楽しみに!
連載目次:初心者向けPythonで辞書を使った集計ツールの作り方
Pythonの「辞書」を使うことで、カウントや計算などの集計作業を簡単に行うことができます。本シリーズでは、辞書とは何かというところから実際にcsvファイルを集計するツールを作るところまでを伝えしていきます。