避免「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>
透過利用這些技術,您可以規則中處理字典時出現“RuntimeError:字典在迭代期間更改大小”錯誤。
以上是如何避免Python中的「運行時錯誤:字典在迭代期間改變大小」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!