リスト で紹介したリストオブジェクトは、順番に並んだ値をひとまとめの情報として管理するためのオブジェクトでした。リストオブジェクトに登録された値を取り出すときには、リストオブジェクト[インデックス] のように、参照する値の順番を指定します。リストオブジェクトの例として、「東海道新幹線の停車駅」のリストを紹介しました。
stations = ["東京", "品川", "新横浜", "小田原", "熱海"]
このような単純なリストであれば、最初の駅は東京駅、2番目の駅は品川駅、 …… のように、知りたい要素の順番だけを指定すれば必要な情報を取り出せます。
しかし、たとえば、英語の単語帳を作るときには、apple を指定すると りんご を返し、orange を指定すると みかん を返すような仕組みが必要です。あるいは、都道府県の県庁所在地を情報としてまとまるとき、埼玉県 を指定すると さいたま市 を返し、北海道 を指定すれば 札幌市 と返す仕組みが必要です。
辞書オブジェクト¶
このような、あるデータに対応する関連データを登録できるような仕組みとして、Pythonは 辞書オブジェクト を用意しています。辞書オブジェクトには、apple と りんご のような、2つの値を組み合わせた情報を登録できます。apple と りんご の組み合わせを登録した辞書オブジェクトで、apple を検索すると、本物の英和辞典とおなじように りんご が返ってきます。
このような機能から、辞書オブジェクトは、別名「連想配列」とも呼ばれます。
キーと値¶
辞書オブジェクトを検索する時に指定するデータ(この例では apple) を、辞書の キー といいます。また、キーに対応して、検索の結果となるデータ(この例では りんご)を、辞書の 値 といいます。
辞書の キー と 値 は非常に重要な用語ですので、しっかり覚えておいてください。
辞書オブジェクトの作成¶
辞書オブジェクトは、波括弧 { と } で作成します。
{キー1:値1, キー2:値2, ...}
{ と } の間には、登録するキーと値を キー:値 という形式で指定し、, で区切って記入します。
例として、こんな情報が入った英単語帳を作ってみましょう。
| キー (英単語) | 値 (日本語) |
|---|---|
| apple | りんご |
| orange | みかん |
| peach | もも |
辞書を検索する キー として英単語を指定し、英単語に対応する日本語を 値 として、辞書を作成します。
english_words = {"apple": "りんご", "orange": "みかん", "peach": "もも"}
print(english_words)
要素が登録されていない、空の辞書は、{} だけで作成します。
empty_dict = {}
print(empty_dict)
辞書の参照¶
辞書オブジェクトに登録した要素は、次のような式で参照できます。
辞書オブジェクト[キー]
辞書オブジェクトに登録した要素を参照するときは、辞書オブジェクトに、参照する要素のキーを指定します。 english_words を使って、英単語から日本語を取り出してみましょう。
print(english_words["apple"])
この式は、辞書オブジェクトの english_word にキーとして文字列 apple を指定して、対応する値の りんご を取り出しています。
辞書に登録されていない値のキーを指定すると、次のようにKeyError というエラーが発生します。
english_words['banana']