Avatar ·

كيفية حذف قيمة من قاموس أثناء حلقة for

📁 بايثون, خطأ, مثال

واجهت مشكلة غير متوقعة. أثناء حلقة for على قاموس، أحتاج إلى حذف الإدخالات منه، ولكن بغض النظر عن المحاولات يظهر خطأ:

RuntimeError: dictionary changed size during iteration

حاولت حتى أخذ لقطة (snapshot) من القاموس قبل التكرار والتكرار على النسخة المكررة مع الحذف من الأصل.

مثال:

>>> ot={12:'wqe',13:'wqe',14:'wqe',15:'wqe'}>>> ot1=ot>>> for i in ot1:...  del ot[i]... Traceback (most recent call last):  File ""<stdin>