# キーのみ
for key in <辞書オブジェクト>:
print(key)
# 値のみ
for value in <辞書オブジェクト>.values():
print(key)
# キーと値
for key, value in <辞書オブジェクト>.items():
print(f'{key}={value}')
キーのループ処理
キーのみをループで取得する場合、for 文に 辞書オブジェクトをそのまま渡します。for key in <辞書オブジェクト>:
print(key)
- key に キー値 が入ります。
- key は変数名です。分かりやすい名前に変更できます。
# for + keys()メソッド
for key in <辞書オブジェクト>.keys():
print(key)
# for + iter()関数
for key in iter(<辞書オブジェクト>):
print(key)
サンプルプログラム
次のサンプルコードは for を使用し、dict(辞書)のキーを全て表示しています。weekDict = {'Monday': '月曜日',
'Tuesday': '火曜日',
'Wednesday': '水曜日',
'Thursday': '木曜日',
'Friday': '金曜日',
'Saturday': '土曜日',
'Sunday': '日曜日'}
# for ループでキーを取得
for key in weekDict:
print(key)

値のループ処理
値のループ処理には、辞書の values()メソッド を使用します。values()メソッド は 値を含む ビューオブジェクト を返します。ビューオブジェクト は リスト のようなもので、値を順番に取り出すことができます。for value in <辞書オブジェクト>.values():
print(value)
- value に 値 が入ります。
- value は変数名です。分かりやすい名前に変更できます。
サンプルプログラム
次のサンプルコードは for と items()メソッド を使用し、dict(辞書)の値を全て表示しています。weekDict = {'Monday': '月曜日',
'Tuesday': '火曜日',
'Wednesday': '水曜日',
'Thursday': '木曜日',
'Friday': '金曜日',
'Saturday': '土曜日',
'Sunday': '日曜日'}
# for ループで値を取得
for value in weekDict.values():
print(value)

キーと値のループ処理
キーと値を同時に取り出すには、辞書の items()メソッド を使用します。items()メソッド は キーと値をペアとしたタプルを扱う ビューオブジェクト を返します。ビューオブジェクト は リスト のようなもので、キーと値を含むタプルオブジェクト を順番に取り出すことができます。for key, value in <辞書オブジェクト>.items():
print(f'{key}={value}')
- key に キー、value に対応する値が入ります。
- key と value は変数名です。分かりやすい名前に変更できます。
サンプルプログラム
次のサンプルコードは items()メソッド を使用し、dict(辞書)の内容を全て表示しています。# ループ処理したい辞書(dict)
weekDict = {'Monday': '月曜日',
'Tuesday': '火曜日',
'Wednesday': '水曜日',
'Thursday': '木曜日',
'Friday': '金曜日',
'Saturday': '土曜日',
'Sunday': '日曜日'}
# for ループ + items()メソッドでキーと値を取得
for key, value in weekDict.items():
print(f'{key}={value}')

for で キーと値 が取り出される順番について
Pythonバージョン3.7 から、キーが追加された順番に取得されることが保証されるようになりました。それ以前のバージョンでは取得順は不定で、同じソースコードでも実行環境により結果が変わる可能性があります。Pythonのバージョンを確認するには、次の記事を参照してください。for ループの順序を逆転させる
組み込み関数 reversed() を使用します。reversed は 要素を逆順に取り出す イテレータ を返します。 辞書で reversed() 関数を使用するには、Pythonバージョン3.8以降が必要です。# キーを逆順に取得
for key in reversed(weekDict):
print(key)
# 値を逆順に取得
for value in reversed(weekDict.values()):
print(value)
# キーと値を逆順に取得
for key, value in reversed(weekDict.items()):
print(f'{key}={value}')
組み込み関数 reversed() の詳細は次の記事を参照してください。

for ループでの注意事項
for ループ内で要素の追加や削除を行うとエラーが発生します。次のサンプルコードはループ中に要素を削除しようとしていますが、エラーが発生します。
# ループ中に要素を削除
for key in weekDict:
# RuntimeError: dictionary changed size during iteration
del weekDict[key]

サンプルコードのダウンロード
- サンプルコードの実行には Python3.7 以上のバージョンが必要です。
- サンプルコードのダウンロードや実行によって損害等が発生した場合、理由の如何に関わらず、当方は一切責任を負いません。
ダウンロードリンク
参考資料
- Python 公式ドキュメント - マッピング型 -- dict
- Python 公式ドキュメント - items() -- dict
- Python 公式ドキュメント - keys() -- dict
- Python 公式ドキュメント - values -- dict
- Python 公式ドキュメント - 辞書ビューオブジェクト -- dict
- Python 公式ドキュメント - 組み込み関数 reversed(seq)
検証環境
- Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32
- Microsoft Windows 10 Enterprise Version 22H2 OS Build 19045.3803 Experience: Windows Feature Experience Pack 1000.19053.1000.0