Python勉強会~辞書編~

どうも!リョクちゃです。相変わらず暑い日が続いていますね。
いかがお過ごしでしょうか。
さて、今日はPythonで扱われる辞書型について使い方などを解説していきます。
これが使えるようになると前回学んだ、リストやタプルを活かして、
様々なことが簡単にできるようになります。

ゲームで例えると、RPG系の自分が操作するキャラクターのパラメータ管理や
敵を倒すともらえる経験値やアイテムの管理なんかも実は行えます。

辞書単体だと、文章中の単語の出現回数を調べることもできちゃいますよ。

さっそく、辞書型について学んでいきましょう。

ちなみに前回はこちら

タプル編

リスト編

目次

スポンサーリンク




辞書(ディクショナリ)とは

他の言語では、連想配列やハッシュ表ともいわれています。

イメージとしては、国語辞書をイメージするとわかりやすいです。
下のようなイメージになります。

見出しと内容がセットになったものがPythonでいう辞書になります。

特徴

  • 見出しと内容のセットになっている
  • 見出しと内容を:(コロン)でつなぎ、それぞれのセットを,(カンマ)で区切り、
    波かっこ{}で囲んで表記します。 → {見出し1:内容1, 見出し2:内容2}
  • リストやタプルと違って順序に特に重要な意味はありません。
  • インデックスを使ったアクセスがありません。
    代わりに見出しを使ってアクセスします。

使い方

先ほどの辞書を実際にPythonで書いてみましょう。

こうなります。

Pythonでは、それぞれ、

  • 見出し → Key
  • 内容  → Value

として扱われます。

コードで書いたのを下に示しておきます。

辞書から内容を取り出す

先ほど作成した辞書から、内容を取り出してみましょう。
取り出し方としては、下図のイメージになります。

図にならって、辞書変数Xに格納されている’鉛筆’の内容を取り出してみましょう。
これをPythonで書くと、

X[‘鉛筆’]と書くことで、内容を取り出すことができました。

辞書に格納された見出し、内容をすべて取り出す

辞書の中には、どのぐらい見出しが収められているのか気になることも時にはあります。
そんなときには、下図のようにして取り出すことができます。

実際にコードを下に示します。

いっぽうで、内容をすべて取り出したい場合は、下図のようにして取り出すことができます。

実際にコードを下に示します。

このようにして、辞書に格納された見出しや内容をすべて取り出すことができます。
ここで見出しと内容を一緒にすべて取り出せないのか?と疑問に思った方、鋭いです。
見出しと内容をすべて取り出したいとき、下図のようにして取ることができます。

実際にコードを示します。

まとめ

項目書き方出力
すべての見出しを取得辞書変数.keys()dict_keys([])
すべての内容を取得辞書変数.values()dict_values([])
すべての見出しと内容を取得辞書変数.items()dict_items([])
指定の内容を取得辞書変数[見出し]見出しに結びつく内容

リストやタプルと組み合わせて使う

辞書では、タプル型を見出し(キー)として扱うことができます。
下図のようになります。

図の場合は、”8月11日生まれのTomさんは、70歳です。”といった解釈ができます。
このようにタプル型をキーにすることで、情報を一意に定めることもできます。
キーが増えれば増えるほど、情報の精度は高くなりますね。

いっぽうでリストの場合、

実際は……

できないのです。
これをコードで書いてみていきましょう。

実行してみると、タプル型をキーにした変数Xは問題なく実行されましたが、
リストがをキーにした変数Yは、例外が発生してしまいました。
これは、リスト型がunhashableな型だからダメといわれています。
unhashableな型については、今回は触れませんが、興味がある方は
Python unhashable リスト 辞書で検索していただければ出てくると思います。

練習問題

① 辞書変数{ ‘x’ : 24, ’y’ : 18,  ‘z’ : 30 }が与えられます。{ key : value }

それぞれのkeyとvalueを取得し、valueが20以上の場合{keyの中身}:’いいね’と出力し、

超えていない場合は{keyの中身}:’ノー’と出力して下さい。

<望ましい出力>

x : いいね
y : ノー
z : いいね

おわりに

ついに辞書型までざっくりとではありますが学ぶことができました。
Pythonで辞書型はなかなかに強力な型なのでぜひ覚えていただけたらなと思います。
前回までに学んできた、リストやタプルも重要なので忘れずに。
筆者もよく使う、リストやタプル、そして辞書をざっくりと紹介しましたが
もうちょっと細かく解説したのは番外編として次回にでもまとめようかと思います。

スポンサーリンク




スポンサーリンク
スポンサーリンク