避免“运行时错误:字典在迭代期间更改大小”错误
尝试在迭代字典时修改字典,如下面的代码片段,可以触发“RuntimeError:字典在迭代期间更改大小”错误:
d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}
for i in d:
if not d[i]:
d.pop(i)
为了克服这个限制,可以采用多种方法:
Python 2.x 和 3.x:
使用 'list' 强制复制密钥:
for i in list(d):
Python 3.x(及更高版本):
使用 'collections.OrderedDict':
from collections import OrderedDict
for i in OrderedDict(d):
替代解决方案:
new_d = {}
for key, value in d.items():
if value:
new_d[key] = value
keys_to_pop = list(d)
for i in keys_to_pop:
if not d[i]:
d.popitem(i)
通过利用这些技术,您可以在 Python 中处理字典时避免“RuntimeError:字典在迭代期间更改大小”错误。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3