迭代字典修改
通常需要在迭代字典的同時刪除字典中的項目。但是,Python 本身不支援此操作。
在迭代字典時修改字典可能會導致錯誤。例如,您提供的程式碼片段在Python 3 中可能會失敗,並出現錯誤:
RuntimeError: dictionary changed size during iteration.
Python 3 解
在Python 3 中,解決方案是建立字典中的鍵列表並迭代該列表。以下是一個範例:<code class="python"># Python 3 or higher for k in list(mydict.keys()): if mydict[k] == 3: del mydict[k]</code>
Python 2 解
在Python 2中,keys()方法傳回一個迭代器,迭代過程中不能修改該迭代器。要修改字典,可以使用以下方法:<code class="python"># Python 2 for k, v in mydict.items(): if v == 3: del mydict[k]</code>
<code class="python">for k in mydict.keys(): if mydict[k] == 3: del mydict[k]</code>
替代方法
或者,您可以使用pop() 方法在迭代時從字典中刪除項目:<code class="python">for k in list(mydict.keys()): if k == 3: mydict.pop(k)</code>
以上是如何在 Python 中迭代時安全地從字典中刪除項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!