Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで辞書の値にアクセスする方法|基本構文とKeyErrorへの対処法

Pythonの辞書(dict)の要素にアクセスするには、おなじみの角括弧 [] を使ってキーを指定します。これにより、キーに対応する値を簡単に取得できます。

基本的な例

以下は最もシンプルなサンプルコードです。

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])

実行結果

上記のコードを実行すると、次のような出力が得られます。

dict['Name']: Zara
dict['Age']: 7

このように、dict[キー] の形式で記述するだけで、対応する値を取り出せます。

存在しないキーにアクセスした場合

辞書に登録されていないキーで値を取得しようとすると、KeyError というエラーが発生します。

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print("dict['Alice']: ", dict['Alice'])

実行結果

上記のコードを実行すると、次のようなエラーが出力されます。

Traceback (most recent call last):
  File "test.py", line 4, in <module>
    print("dict['Alice']: ", dict['Alice'])
KeyError: 'Alice'

KeyError: 'Alice' は、「'Alice' というキーは辞書内に存在しない」ことを意味しています。

エラーを避けるための安全なアクセス方法

存在しないキーへのアクセスによるエラーを防ぎたい場合は、get() メソッドを使うのが便利です。get() は、キーが存在しない場合に None を返すため、プログラムが途中で停止しません。また、第2引数でデフォルト値を指定することも可能です。

print(dict.get('Alice'))             # None を返す
print(dict.get('Alice', '未登録'))    # デフォルト値「未登録」を返す

さらに、in 演算子を使えば、キーが辞書に存在するかどうかを事前に確認することもできます。

if 'Alice' in dict:
    print("dict['Alice']: ", dict['Alice'])
else:
    print("'Alice' は辞書に存在しません")

用途に応じて角括弧・get()in を使い分けることで、安全かつ読みやすいコードを書くことができます。

  1. Pythonで辞書の値を更新する方法|update()メソッドの使い方を解説

    Pythonの組み込み型である辞書(dict)クラスには、update()メソッドが標準で用意されています。このメソッドは、別の辞書オブジェクトを引数として受け取り、呼び出し元の辞書にマージ(統合)することができます。 基本構文 D1.update(D2) 動作の仕組み D2の内容がD1に統合されます。このとき、キーの有無によって以下のように挙動が変わります。 D2のキーがD1にすでに存在する場合:そのキーの値がD2の値で上書き(更新)されます。 D2のキーがD1に存在しない場合:新しいキーと値のペアとしてD1に追加されます。 実行後、D1は更新された内容を保持します。 使用例 >&

  2. Pythonで辞書(dict)を値で並べ替える方法【OrderedDictとsorted()活用】

    Pythonで辞書を値順にソートする基本の考え方 Pythonの標準ライブラリには、高性能なコンテナデータ型を提供する collections モジュールが含まれています。その中の OrderedDict は辞書型のサブクラスで、要素が追加された順序を記憶できるのが特徴です。通常の dict もPython 3.7以降は挿入順を保持しますが、明示的に順序を扱いたい場面では OrderedDict が便利です。 OrderedDict をイテレートすると、キーが最初に追加された順序どおりにアイテムが返されます。 OrderedDictの基本的な使い方 >>> from coll