目次
開発環境
- Python version: python 3.10.11
Pythonの辞書とは
Pythonの辞書とは、任意の種類のオブジェクト(キー)から任意の種類のオブジェクト(値)への対応づけを行うことができる辞書クラスです。
また、pythonでは辞書と言いますが、Rubyではハッシュ、他の言語では連想配列とも呼びます。
公式リファレンス:https://docs.python.org/ja/3/tutorial/datastructures.html#dictionaries
辞書のキー(key)と値(value)について
配列とは異なり、辞書では各要素に対してインデックス番号ではなく、キー(key)が割り当てられます。
したがって、辞書から要素を取り出す際は、配列でのようにインデックス番号ではなく、対応するキーを指定することで値取り出すを取り出すことができます。
注意が必要な点として、各キーは一意でなければならないため、異なるキーを使用するか、同じキーを上書きするかを検討する必要があります。
Pythonの辞書の書き方
Pythonの辞書の書き方は以下になります。
1 | dict_array = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'} |
各キーと値はコロン「:(コロン)」で対応づけを行い、各キーと値のペアは「,(カンマ)」で区切り、全体を波括弧{...}で囲んで記述することにより、辞書を作成することができます。
Pythonの辞書を操作する基本
Pythonの辞書を操作するために必要な基本を解説していきます。
辞書の初期化
Pythonの辞書の初期化は下記のように記述します。
1 2 3 4 5 | ## リテラル表現で辞書を初期化する dict_array = {} ## dict コンストラクタを使用で辞書を初期化する dict_array = dict() |
リテラル表現、またはdictコンストラクタを使用することで配列を初期化することができますが、一般的にはリテラル表現を使用することが主流です。
また、上記のような状態を空の辞書を作成するとも言います。
辞書に要素を追加
Pythonの辞書に要素を追加する場合は下記のように記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | dict_array = {} ## 直接キーと値を指定して要素を追加 dict_array['key1'] = 'value1' ## update メソッドを使用して要素を追加 dict_array.update({'key2': 'value2', 'key3': 'value3'}) ## setdefault メソッドを使用して要素を追加 dict_array.setdefault('key4', 'value4') ## dict コンストラクタを使用して要素を追加 dict_array = dict([('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3')]) |
基本的には新しいキーkey1
に対し、対応する値value1
を設定して要素を追加します。
そのほかにもupdate
は既存のキーがあれば上書き、なければ新しいキー・値のペアを作成することができます。
setdefault
メソッドについては、指定されたキーが存在しない場合は新しいキー・値のペアを追加するという動きになるため、注意が必要です。
辞書の要素を更新
Pythonの辞書の要素を更新する場合は下記のように記述します。
1 2 3 4 5 6 7 | dict_array = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'} ## キーを指定して要素を更新 dict_array['key1'] = 'value1の更新' ## update メソッドを使用して要素を更新 dict_array.update({'key2': 'value2の更新', 'key3': 'value3の更新'}) |
基本的には辞書のキーを指定して値を更新する方法が一般的です。
update
メソッドについては、既存のキーがあれば上書き、なければ新しいキー・値のペアを作成することができます。
辞書の要素を削除
Pythonの辞書の要素を削除する場合は下記のように記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | dict_array = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'} ## del ステートメントを使用して要素を削除 del dict_array['key1'] ## pop メソッドを使用して要素を削除 dict_array.pop('key2') ## popitem メソッドを使用して要素の最後を削除 dict_array.popitem() ## clear メソッドを使用して要素をすべて削除する dict_array.clear() |
del
ステートメント、pop()
メソッド、そしてpopitem()
メソッドを使用することで、効果的に要素を削除できます。
注意点として、del
ステートメントは指定したキーの要素を直接削除しますが、pop()
メソッドは指定したキーの要素を削除して取得します。
また、clear
メソッドで辞書内のすべてのキー・値のペアを削除して、空の辞書にすることができます。
辞書の要素を取得
Pythonの辞書の要素を取得する場合は下記のように記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | dict_array = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'} ## キーを指定して取得する element = dict_array['key1'] ## get メソッドを使用して取得する element = dict_array.get('key1', None) ## keys メソッドを使用してキーを取得する element = dict_array.keys() ## values メソッドを使用して値を取得する element = dict_array.values() ## items メソッドを使用してキーと値を取得する element = dict_array.items() |
基本的には辞書に対してキーを指定することで値を取得することができます。
ただし、辞書にキーがない場合はエラーとなってしまうため、エラーを回避したい場合はget
メソッドで指定したキーの値を取得できなかった場合に返す値を指定することができます。
また、keys()
メソッドは辞書のすべてのキーを取得、values()
メソッドは辞書のすべての値を取得、items()
メソッドは辞書のすべてのキー・値のペアを取得することができます。
おわりに
Pythonの辞書の書き方や使い方を解説してきましたが、いかがだったでしょうか。
いわゆる連想配列はデータを操作するうえでは必要不可欠なほどよく使われますが、基本的な操作ができるようになれば自由にデータを処理することができます。
最初は難しいかもしれませんが、辞書の基本的な使い方をマスターしていきましょう。