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

Mary-Kate Olsen
發布: 2024-11-03 18:59:02
原創
359 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板