避免“RuntimeError:字典在迭代期间更改大小”错误
尝试在迭代字典时修改字典,如下面的代码片段会触发“RuntimeError:字典在迭代期间更改大小”错误:
<code class="python">d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]} for i in d: if not d[i]: d.pop(i)</code>
要克服此限制,可以采用各种方法:
Python 2。 x 和 3.x:
使用“列表”强制复制密钥:
<code class="python">for i in list(d):</code>
Python 3.x(及更高版本):
使用 'collections.OrderedDict':
<code class="python">from collections import OrderedDict for i in OrderedDict(d):</code>
替代解决方案:
<code class="python">new_d = {} for key, value in d.items(): if value: new_d[key] = value</code>
<code class="python">keys_to_pop = list(d) for i in keys_to_pop: if not d[i]: d.popitem(i)</code>
通过利用这些技术,您可以规避在 Python 中处理字典时出现“RuntimeError:字典在迭代期间更改大小”错误。
以上是如何避免Python中的“运行时错误:字典在迭代期间改变大小”?的详细内容。更多信息请关注PHP中文网其他相关文章!