[英]RuntimeError: dictionary changed size during iteration PYTHON
我正在嘗試根據條件從字典中刪除鍵值,但是當我嘗試時收到錯誤
RuntimeError:字典在迭代期間改變了大小
這是我的代碼
threading.Timer(5.0, compare_time_connecteds).start()
FMT = '%H:%M:%S'
datesys_compare = datetime.now().strftime("%H:%M:%S")
keys = connecteds.keys()
if len(keys) != 0:
for i in keys:
true_time = datetime.strptime(datesys_compare, FMT) - datetime.strptime(connecteds.get(i), FMT)
difference_in_seconds = true_time.total_seconds() #
if difference_in_seconds > 20:
connecteds.pop(i)
這是錯誤
for i in keys:
RuntimeError: dictionary changed size during iteration
我解決了這個強制鍵成為列表
FMT = '%H:%M:%S'
datesys_compare = datetime.now().strftime("%H:%M:%S")
keys = list(connecteds.keys())
嘗試用表達式connecteds.keys()
替換變量keys
。 我假設您正在使用線程,並且還在這些線程中使用了connecteds
。 可能是正在改變大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.