」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何避免Python中的「運行時錯誤:字典在迭代期間改變大小」?

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

發佈於2024-11-10
瀏覽:959

How to Avoid the \

避免「運行時錯誤:字典在迭代期間更改大小」錯誤

嘗試在迭代字典時修改字典,如下面的程式碼片段,可以觸發「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):

替代解決方案:

  1. 創建一個具有所需修改的新字典:
new_d = {}
for key, value in d.items():
    if value:
        new_d[key] = value
  1. 使用 Python 3.3' s 'popitem' 方法並迭代副本:
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