本記事ではPythonの組み込み関数である辞書型について説明します。
また本記事の説明は、公式サイトを大きく参考にしています。以下の記事も併せてご参照ください。


辞書型について簡単な説明
辞書型とはPython の組み込み関数の一つです。値の取り出し方が辞書の索引に似ていることから、辞書型といわれています。本記事では組み込み関数(class 型)と説明しています。詳しくは以下の記事を参考にしてください。

辞書型の最大の特徴は数値に意味付けできることです。list と tuple は要素だけを格納することしかできません。

辞書型は入力した要素に意味付けすることができます。外食で1,000円、飲み会で3,000円、洋服に10,000円といった感じです。list や tuple と比較して数値や文字に意味付けできることがメリットですが、順番や重複が考慮されないことがデメリットです。例えば、外食 1,000 円、外食 2,000 円と登録しようとすると、どちらかが削除される、といった感じです。
辞書型の使い方
空の辞書型を作成
辞書型の記述方法は以下の通りです。
dict()
また、単に以下の形で表されます。
{}
これらをインスタンスとして定義して、Jupyter Notebook に出力させてみます。以下のコードを実行してみてください。このサイトをはじめからご覧になっている方は、Jupyter Notebook のファイル名を「dict_practice」としてファイルを作成してください。

実行するコードは以下の通りです。
dict_clf= dict()
dict_clf
dict_clf= {}
dict_clf
実行すると以下の結果が出力されます。

要素の入った辞書型
次に要素の入った辞書型を作成します。要素の入った辞書型を作成する方法は複数ありますが、今回は要素を区切るだけでできるリストの作成方法について説明します。残りの作成方法は後日公開予定です。
辞書型の作成例は以下の通りです。
{キー1 : 要素1, キー2 : 要素2, キー3: 要素3, ・・・}
キーは値の名前のことを指します。
Jupyter Notebook で実行してみましょう。以下のコードを実行してみてください。
food_money = {"breakfast" : 500, "lunch" : 300, "dinner" : 3000} # 単位: 円
food_money
Jupyter Notebook でコードを実行すると、以下の結果が出力されます。

要素の取り出し、切り出し
dict の中の要素はキーを指定することで取り出すことができます。具体的には以下のように取り出します。
辞書型のインスタンス[キーの名前]
「要素の入った辞書型」で説明した「food_money」変数を使って実際に要素を取り出してみます。以下のコードを実行してみてください。
food_money ["lunch"]
Jupyter Notebook でコードを実行した結果は以下のようになります。

辞書型はリストのようにスライスで切り出すことはできません。もし切り出したいときは自分で関数やプログラムを作成する必要があります。こちらは後日解説しようと思います。
辞書型 でよく使用するメソッド
copy
辞書型をコピーするときに使うコードです。以下のように記述します。
変数名 = コピーしたい辞書型.copy()
実際にJupyter Notebook で以下のコードを実行してみましょう。
food_money_copy = food_money.copy()
food_money_copy
実行結果は以下の通りになります。

またコピーは以下のように記述しても同様の結果が得られます。
変数名 = dict(コピーしたいリスト名)
pop
辞書型から値を削除し、削除したキーの値を取得します。以下のように記述します。
削除したいキーが入った辞書型.pop(削除したいキー)
実際にJupyter Notebook で以下のコードを実行してみましょう。
food_money = {"breakfast" : 500, "lunch" : 300, "dinner" : 3000}
num_delete = food_money.pop("breakfast")
num_delete
food_money
実行しますと、以下の結果が出ます。

このように元の辞書型のインスタンスから “breakfast”が削除され、popから返された変数は500であり、削除されたキーが持っていた値であることがわかると思います。
keys
辞書型のキーをすべて取得します。具体的には以下のように記述します。
キーを取得した辞書型のインスタンス.keys()
実際にJupyter Notebook で以下のコードを実行してみましょう。
food_money = {"breakfast" : 500, "lunch" : 300, "dinner" : 3000}
key_all = food_money.keys()
key_all
実行しますと、以下の結果が出ます。

values
辞書型の値をすべて取得します。具体的には以下のように記述します。
キーを取得した辞書型のインスタンス.values()
実際にJupyter Notebook で以下のコードを実行してみましょう。
food_money = {"breakfast" : 500, "lunch" : 300, "dinner" : 3000}
val_all = food_money.values()
val_all
実行しますと、以下の結果が出ます。

items
辞書型の要素をすべて取得します。具体的には以下のように記述します。
キーを取得した辞書型のインスタンス.items()
実際にJupyter Notebook で以下のコードを実行してみましょう。
food_money = {"breakfast" : 500, "lunch" : 300, "dinner" : 3000}
elements = food_money.items()
elements
実行しますと、以下の結果が出ます。

update
辞書型に要素を追加することができます。具体的には以下のように記述します。
要素を追加したい辞書型のインスタンス.update(別の辞書型のインスタンス)
実際にJupyter Notebook で以下のコードを実行してみましょう。
food_money = {"breakfast" : 500, "lunch" : 300, "dinner" : 3000}
add_food_money = {"snack" : 100, "midnight_snack" : 300}
food_money_new = food_money.copy()
food_money_new.update(add_food_money)
food_money_new
実行しますと、以下の結果が出ます。

要素が重複すると、後の要素の値に更新されてしまいます。実際にJupyter Notebook で以下のコードを実行してみましょう。
food_money = {"breakfast" : 500, "lunch" : 300, "dinner" : 3000}
add_food_money = {"snack" : 100, "midnight_snack" : 300, "breakfast" : 800}
food_money_new = food_money.copy()
food_money_new.update(add_food_money)
food_money_new
実行しますと、以下の結果が出ます。

このように、要素が重複していた”breakfast”がadd_food_moneyの値に更新されていることがわかると思います。
最後に
今回は辞書型について解説しました。長文の記事になりましたので、時間をかけて学習することをお勧めします。本記事は以上です。ありがとうございました。