避免「運行時錯誤:字典在迭代期間更改大小」錯誤
嘗試在迭代字典時修改字典,如下面的程式碼片段,可以觸發「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):
替代解決方案:
new_d = {}
for key, value in d.items():
if value:
new_d[key] = value
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