לא ניתן למחוק איברים ממילון בזמן שעושים איטרציה על איבריו?

קיבלת את השגיאה הבאה: RuntimeError: dictionary changed size during iteration

מחקתי איברים מהמילון בזמן שלולאה רצה על המילון, רציתי לדעת למה זה לא אפשרי לשנות את גודל המילון תוך כדי שרצים עליו…?

אתה רץ על מילון בעזרת לולאת for -
הלולאה מקבלת את המילון ואתה משנה את מספר הערכים שלו באמצע - הלולאה ציפתה לעבור x פעמים אבל באמצע פתאום “אין יותר מילון”.
זה מקביל פחות או יותר שאתה רץ עם לולאת while על רשימה ואתה חורג מאורך הרשימה - out of range

2 לייקים

אפשר לרוץ על עותק של המילון בזמן שמשנים את המילון המקורי:

for item in random_dict.copy():
a = random_dict.pop(item)