首頁  >  文章  >  後端開發  >  如何避免Python中的「運行時錯誤:字典在迭代期間改變大小」?

如何避免Python中的「運行時錯誤:字典在迭代期間改變大小」?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 18:59:02302瀏覽

How to Avoid the

避免「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>

替代解決方案:

  1. 使用所需的修改創建一個新字典:
<code class="python">new_d = {}
for key, value in d.items():
    if value:
        new_d[key] = value</code>
  1. 使用Python 3.3 的'popitem' 方法並迭代副本:
<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn