Python で辞書を反復処理する方法 (キー、値、項目)

Python 辞書をループまたは反復処理する方法を学びます。クリーンで実行可能な例を使用して、キー、値、およびキーと値のペアをループするメソッドを発見します。

エディターでこのソリューションを試してください

概要

辞書はデータベース レコード、API ペイロード、構成設定などのキーと値のデータを保存するために広く使用されているため、辞書の反復処理は Python プログラミングの基本的なタスクです。 Python には、キー、値、またはその両方が必要かどうかに応じて辞書を走査するための直感的な組み込みメソッドがいくつか用意されています。これらのメソッドを理解することは、クリーンで効率的で読みやすいコードを作成するために重要です。

キーと値の両方を同時に反復処理する最も一般的な方法は、`.items()` メソッドを使用することです。このメソッドは、キーと値のペアのタプルを含むビュー オブジェクトを返します。これは、「for」ループ ステートメント内で直接簡単に解凍できます。これは、キーを繰り返し処理して値を手動で検索するよりも、読みやすく効率的であるため、一般に好まれます。

キーのみが必要な場合は、辞書自体を直接ループするか、`.keys()` メソッドを明示的に使用できます。値のみを反復処理するために、Python には `.values()` メソッドが用意されています。これらのビュー オブジェクトは両方とも動的であり、ディクショナリに加えられた変更を反映し、「in」演算子を使用したメンバーシップ テストをサポートします。

コードと実行の出力

このコードは、辞書のキー、値、およびキーと値のペアを反復処理する方法を示しています。

user = {"username": "alice", "role": "admin", "active": "True"}

# 1. Iterate over keys and values using items()
print("--- Keys and Values ---")
for key, value in user.items():
    print(f"{key}: {value}")

# 2. Iterate over keys only (default behavior)
print("\n--- Keys Only ---")
for key in user:
    print("Key:", key)

# 3. Iterate over values only
print("\n--- Values Only ---")
for val in user.values():
    print("Value:", val)
端子出力
--- Keys and Values ---
username: alice
role: admin
active: True

--- Keys Only ---
Key: username
Key: role
Key: active

--- Values Only ---
Value: alice
Value: admin
Value: True

段階的な実装

  • for ループで user.items() を使用して、キーと値の両方を同時に抽出して解凍します。
  • 辞書を直接ループして (または .keys() を呼び出して)、キーのみを反復処理します。
  • .values() を使用して、ディクショナリの値を分離し、反復処理します。

よくある質問

辞書を反復処理するときに挿入順序は保持されますか?

はい、Python 3.7 以降では、ディクショナリはキーの挿入順序を維持することが保証されています。

辞書を反復処理中に辞書を変更できますか?

いいえ、反復中にキーを変更 (追加または削除) すると、RuntimeError が発生します。代わりにキーまたは値のコピーを変更してください。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。