gotchapythonModerate
Python dictionary iteration — RuntimeError on modification during loop
Viewed 0 times
dict iterationRuntimeErrorchanged sizelist keysdict comprehension
terminal
Error Messages
Problem
RuntimeError: dictionary changed size during iteration when modifying a dict while iterating over it.
Solution
Never modify a dict while iterating. Fixes: (1) Iterate over a copy: for key in list(d.keys()). (2) Dict comprehension: d = {k: v for k, v in d.items() if condition}. (3) Collect keys to delete after loop. The dict comprehension approach is most Pythonic.
Why
Python dicts use a hash table that can resize during modification. Iterating relies on stable internal structure. Modifications invalidate the iterator.
Revisions (0)
No revisions yet.