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, in 
    print(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
Python