Pythonの辞書(dictionary)は、キーと値のペアを保持するデータ構造です。辞書をforループで反復処理する際、キーのみ、値のみ、またはその両方を効率的に処理する方法があります。

辞書のキーをループ処理する

最も基本的な反復方法は、辞書のキーだけを対象とする方法です。辞書に対して直接forループを使うと、キーだけが反復されます。

d = {'x': 1, 'y': 2, 'z': 3}
for key in d:
    print(key, '=>', d[key])

この例では、キーxyzが順番に出力され、対応する値が辞書から取得されます。

キーと値を同時に反復処理する

キーと値のペアを同時に処理したい場合、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()を使い分けることで、柔軟なデータ操作が可能です。また、辞書のキーや値をソートしたり、必要なデータのみを取り出して処理することも簡単に実現できます。