Python: ディクショナリ(辞書)の要素の値を取得する
Pythonでディクショナリ(辞書)の要素の値を取得する場合、 ブラケット[]を使う方法とdictオブジェクトのget()メソッドを使う方法があります。 それぞれの方法を順番に解説します。
ブラケット[]で要素の値を取得
リストと同じようにブラケット[]を使って ディクショナリの要素値を取得できます。[] の中にはキーを指定します。ディクショナリ名[キー]
次のコードでは、キーが「a」の要素にアクセスしています。。
# ディクショナリ d = {"a": 10, "b": 20, "c": 30} # キーが"a"の要素値を取得 print(d["a"]) # 10
存在しないキーを指定するとエラーが出る
「ディクショナリ[キー]」で要素を取得する場合、 存在しないキーを指定すると「KeyError」が発生します。
# ディクショナリ d = {"a": 10, "b": 20, "c": 30} print(d["g"]) # エラー
実行結果
Traceback (most recent call last): File "test.py", line 6, inprint(d["g"]) # 10 KeyError: 'g'
キーが存在するかどうか確認する方法 in演算子
上のようなエラーを防ぐためには、 キーが存在するかどうかを事前に「in演算子」を使って確認する必要があります。
キー in ディクショナリ
ディクショナリの中にキーが存在する場合は True、存在しない場合は False が戻ります。
次のコードは if 文とin演算子を使って、キーが存在する場合と存在しない場合で
分岐させています。
このように記述するとキーが存在しない場合でもエラーを防ぐことができます。
# ディクショナリ d = {"a": 10, "b": 20, "c": 30} if "g" in d: print(True) # 存在する場合の処理 else: print(False) # 存在しない場合の処理
他の方法として次で紹介する get()メソッドを使って取得することもできます。
get()メソッドで要素の値を取得
dictオブジェクトのget()メソッドで要素値を取得することもできます。
書式
ディクショナリ名.get(キー[, 存在しない時の戻り値])
get()メソッドは、キーを指定するとそのキーを持つ要素の値を返します。
「存在しない時の戻り値」のデフォルトは「None」ですが、
自分で指定することもできます。
下のコード例ではget()を使って 「キーが存在する場合」、「キーが存在しない場合」、 「キーが存在しない時の戻り値を指定した場合」の動作を確認しています。
d = {"a": 10, "b": 20, "c": 30} print(d.get("a")) # 10 # キーが存在しない場合 print(d.get("g")) # None # 「存在しない時の戻り値」を指定 print(d.get("g", False)) # False