[英]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.