辞書とは、複数のデータを1つのまとまりの中に入れて、管理できるものです。このように複数のデータを1つにまとめるデータ構造はコンテナと呼ばれており、辞書以外にもリスト、タプル、集合と呼ばれるものがあります。それぞれの特徴は以下の通りです。
辞書
複数のデータ(要素)を格納できる。キーと呼ばれるものと値と呼ばれるものが2つで1組として、格納される。リストやタプルのようにインデックスで関連づけられていない。その代わりにキーで値を指定することができる。
リスト
複数のデータ(要素)を格納できる。各要素にはインデックスと呼ばれる番号が関連づけられており、そのインデックスで要素を指定することができる。リスト内の要素は変更可能。このように変更可能なことをミュータブル(mutable、日本語訳:変更可能な)という。
タプル
複数のデータ(要素)を格納できる。リストと同様、各要素にはインデックスと呼ばれる番号が関連づけられており、そのインデックスで要素を指定することができる。リストとの違いは、タプル内の要素は変更不可能という点がある。このように変更不可能なことをイミュータブル(immutable、日本語訳:変更不可能な)という。
集合
数学の「集合」を表すことができる。各要素は重複しない。変更可能なミュータブルな型、変更不可能なイミュータブルな型、どちらもとることができる。
辞書とリストやタプルとの違い
「辞書」と「リストやタプル」の大きな違いは、辞書にはキー呼ばれるものと値が2つで一組になって格納されることです(リストやタプルは何かと何かが関連づいて1つの組になって格納されることなく、要素と呼ばれるものが単独で格納されます)
辞書の作り方
辞書の作り方には大きく分けて2つあります。
① 波カッコ{ }で囲む
② dict()関数を用いる
それぞれについて見ていきます。
波カッコ{}で囲んで辞書を作る場合
作りたい辞書の始めと最後を波カッコ{}をつけて囲みます。そして、キーと値の間にはコロン:で区切り、各要素はカンマ,で区切ります。キーと値がセットになっていなくてはいけないので、そこは注意が必要です。以下のような形です。
{キー1:値1,キー2:値2,キー3:値3…}
例として、変数animalsに色と動物を関連づけて、辞書を作成してみたいと思います。3行目のコードでデータ型も確認します。
animals ={"brown":"monkey","red":"crab","green":"crocodile"}
print(animals)
print(type(animals))
【実行結果】
{'brown': 'monkey', 'red': 'crab', 'green': 'crocodile'}
<class 'dict'>dict()関数を用いて辞書を作る場合
dict()関数を用いて作成することもできます。作り方は色々ありますが、ここでは以下の3つを取り上げます。
① キーワード引数を用いて作る場合
② リストを用いて作る場合
③ zip()関数を用いて作る場合
①キーワード引数で作る場合
キーワード引数を用いて作る場合は
変数名 = dict(キー1 = 値1, キー2 = 値2, キー3 = 値3…)
とすると、辞書が作れます。
animals = dict(brown="monkey",red="crab",green="crocodile")
print(animals)
【実行結果】
{'brown': 'monkey', 'red': 'crab', 'green': 'crocodile'}②リストを用いて作る場合
リストを用いて作る場合は引数部分にキーと値のペアのタプルを含むリストから辞書を生成します。
変数名 = dict([(キー1,値1),(キー2,値2),(キー3,値3)…])
とすると辞書が作れます。
animals = dict([("brown","monkey"),("red","crab"),("green","crocodile")])
print(animals)
【実行結果】
{'brown': 'monkey', 'red': 'crab', 'green': 'crocodile'}

③zip()関数を用いて作る場合
zip()関数を用いて辞書を作成する場合は、キーのリストと値のリストから辞書を作成することができます。
変数名 = dict(zip(keyのリスト,値のリスト))
key_animals = ("brown","red","green")
values_animals = ("monkey","crab","crocodile")
animals = dict(zip(key_animals,values_animals))
print(animals)
【実行結果】
{'brown': 'monkey', 'red': 'crab', 'green': 'crocodile'}▼関連記事:【Python】zip()関数の使い方
辞書の要素を取り出す
辞書の要素を取り出すときは、キーで指定して、値を取り出します。キーを取り出すときは、変数名[キー]とすると、キーに対応した値が取り出せます。キーbrownを指定して、値monkeyを取り出してみましょう。
animals = {"brown":"monkey","red":"crab","green":"crocodile"}
print(animals["brown"])
【実行結果】
monkey存在しないキーを指定した場合
存在しないキーを指定した場合、エラーメッセージが返されます。
animals = {"brown":"monkey","red":"crab","green":"crocodile"}
print(animals["yellow"])
【エラーメッセージ】
KeyError: 'yellow'辞書内に同じキーが複数ある場合
animals = {"brown":"monkey","red":"crab","green":"crocodile","red":"shrimp"}
print(animals["red"])
【実行結果】
shrimpanimals = {"brown":"monkey","red":"crab","green":"crocodile","red":"shrimp","red":"red dragon"}
print(animals["red"])
【実行結果】
red dragon
コメント