上級 › RuntimeError: dictionary changed size during iteration の原因と直し方 › パターン2
RuntimeError: dictionary changed size during iteration の原因と直し方
辞書をイテレート中にキーを追加・削除すると発生する例外です。
1 inventory = {"apple": 5, "banana": 0, "cherry": 2} 2 for item in __________________: ^ 3 if inventory[item] == 0: 4 del inventory[item] 5 print(inventory)
Traceback (most recent call last):
File "main.py", line 2, in <module>
for item in inventory:
^^^^^^^^^
RuntimeError: dictionary changed size during iteration
空欄を埋めて実行を通す
在庫が0の商品を削除するような処理でよく起きます。辞書のキー一覧を先にlist()でコピーしておけば安全です。
次の問題