上級 › 辞書をイテレート中に変更した例外の原因と直し方 › パターン4
辞書をイテレート中に変更した例外の原因と直し方
辞書をイテレート中にキーを追加・削除すると発生する例外です。
1 counts = {"x": 3, "y": 0, "z": 1} 2 for key in _______________: ^ 3 if counts[key] == 0: 4 del counts[key] 5 print(counts)
Traceback (most recent call last):
File "main.py", line 2, in <module>
for key in counts:
^^^^^^
RuntimeError: dictionary changed size during iteration
空欄を埋めて実行を通す
件数が0のキーを取り除く処理でも同じ例外になります。先にキーの一覧をlist()でコピーしてからイテレートします。
次の問題