みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
非エンジニア&Windowsユーザー向けにPythonで辞書を使った便利な集計ツールの作り方をお伝えしております。
前回の記事はコチラ。
リストの値をカウントして辞書にまとめる超簡単な方法をお伝えしました。
今回はその続きで、そのまとめた辞書をループする方法です。
このテクニックも超基本なはずです。
では、Pythonで辞書をforループするkeysメソッド・valuesメソッド・itemsメソッドの使い方です。
行ってみましょう!
前回のおさらい
では、まず前回のおさらいから入ります。
作成したスクリプトはコチラ。
onigiris = ['シャケ', 'ツナ', 'ツナ', 'コンブ', 'シャケ', 'オカカ', 'シャケ', 'ツナ', 'コンブ', 'シャケ']
count = {'シャケ': 0, 'ツナ': 0 ,'コンブ': 0, 'オカカ': 0}
for onigiri in onigiris:
count[onigiri] +=1
print(count)
リスト内のおにぎりの種類ごとに、何回登場したかをカウントして辞書としてまとめるというスクリプトです。
一応、countという変数に辞書としてまとまっていて、出力すると以下のように中身を見ることができます。
ですが、実際はこの形式じゃない出力がしたいときもありますよね。
それをforループを使った成し遂げたいというのが、今回のお題になります。
keysメソッド・valuesメソッド・itemsメソッド
辞書に対するループを考える際に、keysメソッド・valuesメソッド・itemsメソッドについては語らざるを得ませんのでお伝えします。
そして、以下のような役割を持ちます。
- keysメソッド:辞書からキーのリストを表すdict_keysオブジェクトを返す
- valuesメソッド:辞書から値のリストを表すdict_valuesオブジェクトを返す
- itemsメソッド:辞書からキーと値のペアのリストを表すdict_itemsオブジェクトを返す
そして、dict_keysオブジェクト、dict_valuesオブジェクト、dict_itemsオブジェクトはいずれもイテレート可能なオブジェクト、つまりforループの対象として使用することができます。
では、それぞれ見ていきましょう。
辞書のキーについてループする
keysメソッドの書式はコチラです。
ですから、例えば辞書のキーのリストを表示するのであれば、以下のような命令になります。
for key in count.keys():
print(key)
これによる出力はコチラです。
サクっと作れちゃいますね。
辞書の値についてループする
続いて、valuesメソッドです。
辞書の値についてループするのであれば、以下のような命令になります。
for value in count.values(): print(value)
実行結果はコチラ。
オッケーですね。
辞書のキーと値のペアについてループする
多分、このパターンが一番便利で使うことが多いかもです。itemsメソッドです。
itemsメソッドでは、キーと値のペアについて両方を取り出しながらループできまして、以下のように書きます。
for key, value in count.items():
print('{}: {}'.format(key, value))
実行してみましょう。
うわ、便利!
まとめ
Pythonで辞書をforループするkeysメソッド・valuesメソッド・itemsメソッドの使い方についてお伝えしました。
- 辞書のキーや値のリストを表すオブジェクトを取得する方法
- 辞書についてキーや値、またはそのペアを取り出しながらループをする方法
Pythonのfor文、とても便利ですね!
次回は、辞書のキーが存在するか判定して、なければ新たに追加をする方法をお伝えします。
どうぞお楽しみに!
連載目次:初心者向けPythonで辞書を使った集計ツールの作り方
Pythonの「辞書」を使うことで、カウントや計算などの集計作業を簡単に行うことができます。本シリーズでは、辞書とは何かというところから実際にcsvファイルを集計するツールを作るところまでを伝えしていきます。