Python
の辞書(dictionary)は、キーと値のペアを保持するデータ構造です。辞書をfor
ループで反復処理する際、キーのみ、値のみ、またはその両方を効率的に処理する方法があります。
辞書のキーをループ処理する
最も基本的な反復方法は、辞書のキーだけを対象とする方法です。辞書に対して直接for
ループを使うと、キーだけが反復されます。
d = {'x': 1, 'y': 2, 'z': 3}
for key in d:
print(key, '=>', d[key])
この例では、キーx
、y
、z
が順番に出力され、対応する値が辞書から取得されます。
キーと値を同時に反復処理する
キーと値のペアを同時に処理したい場合、items()
メソッドを使用します。このメソッドは、辞書の各キーとその値のタプルを返し、それをループ内でkey, value
形式でアンパックできます。
for key, value in d.items():
print(key, '=>', value)
この例では、辞書内の各キーとその対応する値が出力されます。
値のみをループ処理する
もし辞書の値だけを処理したい場合は、values()
メソッドを使います。
for value in d.values():
print(value)
キーと値をソートしてループ処理する
辞書を値でソートして出力する場合は、sorted()
を使い、カスタムのキー関数でソートできます。
for key, value in sorted(d.items(), key=lambda item: item[1]):
print(key, '=>', value)
このコードは、辞書を値に基づいて昇順にソートしてから出力します。
辞書の反復に関する注意点
辞書はPython
3.7以降、挿入順序を保持するようになりました。そのため、for
ループでの反復順序も挿入順に従います。
反復中に辞書を変更するとエラーが発生する可能性があるため、注意が必要です。
まとめ
Python
の辞書をループ処理する際、用途に応じてkeys()
、values()
、items()
を使い分けることで、柔軟なデータ操作が可能です。また、辞書のキーや値をソートしたり、必要なデータのみを取り出して処理することも簡単に実現できます。