概要
辞書型データから値を取る方法についての説明です。
他プログラミング言語には慣れているが、Pythonがはじめての方にこの記事が役に立てるかと思います。
辞書型について
Pythonの主な特徴の1つは辞書型(dict
)があることです。
JavaScriptのObject型と似ているが少し違います。
# 辞書型の例
sample_dict = {
"a": 1,
"b": 2
}
sample_dict
から2つの方法で値を取ってみます。
値の取り方1
正常
a = sample_dict["a"]
b = sample_dict["b"]
エラー
c = sample_dict["c"]
sample_dict
にキー"c"
がないためエラー(KeyError: 'c'
)が発生しました。
エラーの対策として例外処理の実装をします。
try:
c = sample_dict["c"]
except KeyError:
c = 0
あるいはキーの存在を事前に確認します。
c = 0
if "c" in sample_dict:
c = sample_dict["c"]
どちらもソースコードが複雑です。
値の取り方2
a = sample_dict.get("a")
b = sample_dict.get("b", 0)
c = sample_dict.get("c")
print(c) # None
c = sample_dict.get("c", 0)
print(c) # 0
ソースコードが簡潔になりました。
結論
2つ目の方法が幅広く使えそうです。
キーの存在が確実であれば、1つ目の方法を使ってもいいと思います。(例外処理やキーの存在チェックが要らないからです。)
2022/03/03追記
どうせNULLチェックや空のチェックをする必要があるときなら、最初から1つ目の方法にして存在チェックを行ってもいいと思います。