note.nkmk.me

Pythonで辞書のキー・値の存在を確認、取得(検索)

Date: 2018-04-13 / tags: Python, 辞書

Pythonで、辞書(dict型オブジェクト)に特定のキーkey、値valueが含まれているかを判定する方法、および、その値を取得する方法を説明する。

in演算子と辞書オブジェクトのvalues(), items()メソッドを使う。

  • キーkeyの存在を確認、取得(検索): in演算子
  • valueの存在を確認、取得(検索): in演算子, values()
  • キーkeyと値valueの組み合わせの存在を確認: in演算子, items()

values(), items()メソッドは辞書のforループ処理でも有用。以下の記事を参照。

スポンサーリンク

辞書のキー(key)の存在を確認、取得(検索): in演算子

辞書オブジェクトに対してinを使うとキーの存在確認になる。存在しないことの確認にはnot inを使う。

d = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}

print('key1' in d)
# True

print('val1' in d)
# False

print('key4' not in d)
# True

なお、Python2ではhas_key()というメソッドがあったがPython3では削除されている。

キーkeyに対する値valueを取得するには辞書オブジェクト[キー]とする。

print(d['key1'])
# val1

辞書オブジェクト[キー]という書き方ではキーが存在しないときにエラーとなるが、get()メソッドを使うとキーが存在しない場合に任意の値(デフォルトはNone)を返すようにできる。

# print(d['key4'])
# KeyError: 'key4'

print(d.get('key4'))
# None

get()メソッドについての詳細は以下の記事を参照。

辞書の値(value)の存在を確認、取得(検索): in演算子, values()

辞書オブジェクトに特定の値valueが含まれているかどうかを判定するには、辞書のすべての値valueをイテレーターで返すvalues()メソッドに対してinを使う。存在しないことの確認はnot in

print('val1' in d.values())
# True

print('val4' not in d.values())
# True

valueからキーkeyの値を取得する方法は以下の記事を参照。

辞書のキーと値の組み合わせの存在を確認: in演算子, items()

辞書オブジェクトに特定のキーkeyと値valueの組み合わせが含まれているかどうかを判定するには、すべてのキーと値のタプル(key, value)をイテレーターで返すitems()メソッドに対してinを使う。

キーkeyと値valueの組み合わせが一致したときのみTrueとなる。

存在しないことの確認はnot in

print(('key1', 'val1') in d.items())
# True

print(('key1', 'val2') in d.items())
# False

print(('key1', 'val2') not in d.items())
# True
スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事