辞書からキーに対応した値を取得するには幾つかの方法がある。それらの方法と注意点を紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
d = {'key0': 0, 'key1': 1}
# 辞書から値を取得
# キーを指定
val = d['key0']
print(val) # 0
# 存在しないキーを指定すると例外
val = d['key100'] # KeyError
# 例外を発生させずに値を取得するにはgetメソッドを使う
val = d.get('key0', 'not found')
print(val) # 0
val = d.get('key100', 'not found') # OK
print(val) # not found
# popメソッドは引数に指定したキーの値を取得して、そのキー/値を辞書から削除
val = d.pop('key1')
print(val) # 1
print(d) # {'key0': 0}
# popメソッドで存在しないキーを指定した場合
val = d.pop('key100') # KeyError
val = d.pop('key100', 'not found')
print(val) # not found
# popitemメソッドは辞書の末尾からキー/値の組を戻し、それを辞書から削除
d = {'foo': 0, 'bar': 1, 'baz': 2}
print(d) # {'foo': 0, 'bar': 1, 'baz': 2}
k, v = d.popitem()
print(f'key: {k}, val: {v}') # key: baz, val: 2
print(d) # {'foo': 0, 'bar': 1}
辞書から値を取得するには以下のような方法がある(ここでいう「値」とは、辞書に含まれるキーに対応する値のこと)。
以下では、これらについて簡単に見ていく。
辞書に対して角かっこにキーを指定することで、その値を取得できる。これはリストやタプルで角かっこの中にインデックスを指定して、そのインデックス位置にある値を取得するのに似ている。
以下に例を示す。
d = {'key0': 0, 'key1': 1}
val = d['key0']
print(val) # 0
この例では辞書dには'key0'と整数0、'key1'と整数1という2つのキー/値の組が含まれている。そして、辞書dに対して「d['key0']」のように角かっこで囲んでキー'key0'を指定すると、その値である整数0が得られている。
これは辞書からキーに関連付けられた値を取得する最も一般的な方法といえる。ただし、注意点がある。それは存在しないキーを指定すると例外が発生することだ。以下に例を示す。
val = d['key100'] # KeyError
これに対して、次に紹介するgetメソッドでは存在しないキーを指定した場合にも例外を発生させない。
getメソッドの構文は次のようになっている。
get(key[, default])
keyには取得したい要素のキーを指定する。defaultは指定したキーが存在しなかった場合にはgetメソッドが返す値を指定する。省略時にはNoneが指定されたものとされる。これにより、getメソッドでは指定したキーが辞書になくても、KeyError例外を発生させることなくdefaultの値が返送される。
以下に例を示す(辞書dは先ほどと同様)。
val = d.get('key0', 'not found')
print(val) # 0
val = d.get('key100', 'not found') # OK
print(val) # not found
最初の例では存在するキーである'key0'を指定しているい。そのため、その値である整数0が返されている。
次の例では、存在しないキー'key100'を指定している。また、引数defaultには'not found'を指定している。よって、ここではgetメソッドの戻り値は'not found'になる。
多くの場合は、ここまでに説明した2つの方法で辞書の値を取り出すが、popメソッドとpopitemメソッドでも辞書から値を取り出せる。
Copyright© Digital Advantage Corp. All Rights Reserved.