Python辞書で一致するキーを検索し値を取得する方法
Pythonの辞書(dict)から特定のキーを検索して値を取得する方法はいくつかあります。ここでは、代表的な2つのケース「正確なキーがわかっている場合」と「部分文字列で検索したい場合」について解説します。
正確なキーがわかっている場合
探したいキーが正確にわかっている場合は、[]演算子またはget()メソッドを使って、そのキーに関連付けられた値を簡単に取得できます。
コード例
a = {
'foo': 45,
'bar': 22
}
print(a['foo'])
print(a.get('foo'))
出力結果
45 45
なお、[]演算子は存在しないキーを指定するとKeyErrorが発生しますが、get()メソッドはキーが存在しない場合にNone(または引数で指定したデフォルト値)を返します。そのため、キーの存在が保証されていない場面ではget()の方が安全です。
部分文字列でキーを検索する場合
キー名の一部(部分文字列)をもとに辞書を検索したい場合は、キーの一覧をループ処理し、find()メソッドで部分文字列が含まれているかを確認します。見つかったキーがあれば、その値を取得しましょう。
コード例
a = {
'foo': 45,
'bar': 22
}
for key in a.keys():
if key.find('oo') > -1:
print(a[key])
出力結果
45
この例では、部分文字列'oo'を含むキー'foo'が見つかり、対応する値45が出力されます。find()は部分文字列が見つかった位置のインデックスを返し、見つからない場合は-1を返すため、> -1の比較で存在判定ができます。
補足として、Python 3ではa.keys()を省略してfor key in a:と書くことも可能です。また、より簡潔に書きたい場合はリスト内包表記を使い、[a[k] for k in a if 'oo' in k]のように該当する値をまとめて抽出することもできます。
-
Pythonで辞書の値を更新する方法|update()メソッドの使い方を解説
Pythonの組み込み型である辞書(dict)クラスには、update()メソッドが標準で用意されています。このメソッドは、別の辞書オブジェクトを引数として受け取り、呼び出し元の辞書にマージ(統合)することができます。 基本構文 D1.update(D2) 動作の仕組み D2の内容がD1に統合されます。このとき、キーの有無によって以下のように挙動が変わります。 D2のキーがD1にすでに存在する場合:そのキーの値がD2の値で上書き(更新)されます。 D2のキーがD1に存在しない場合:新しいキーと値のペアとしてD1に追加されます。 実行後、D1は更新された内容を保持します。 使用例 >&
-
Pythonの辞書からキーを削除する方法を解説!del文・pop()・popitem()の使い分け
はじめに Pythonの辞書(dict)は、キーと値のペアでデータを管理できる非常に便利なデータ構造です。プログラムの実行中に不要になった要素を削除したい場面は多くありますが、Pythonにはいくつかの削除方法が用意されています。 この記事では、代表的な削除方法であるdel文とpop()メソッドを中心に、それぞれの特徴や使い分けのポイントを実行例とともにわかりやすく解説します。 del文でキーを削除する Pythonのdelキーワードは、ほぼすべてのオブジェクトに対して使用できます。辞書から特定の要素を削除する場合は、delステートメントにキーを指定します。 >>> D1