Vermeiden des Fehlers „RuntimeError: Größe des Wörterbuchs hat sich während der Iteration geändert“
Versuch, ein Wörterbuch zu ändern, während darüber iteriert wird, wie im gezeigt Codeausschnitt unten kann den Fehler „RuntimeError: Wörterbuchgröße während der Iteration geändert“ auslösen:
<code class="python">d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]} for i in d: if not d[i]: d.pop(i)</code>
Um diese Einschränkung zu überwinden, können verschiedene Ansätze verwendet werden:
Python 2. x und 3.x:
Erzwingen Sie eine Kopie der Schlüssel mit „list“:
<code class="python">for i in list(d):</code>
Python 3.x (und höher):
Verwenden Sie „collections.OrderedDict“:
<code class="python">from collections import OrderedDict for i in OrderedDict(d):</code>
Alternative Lösungen:
<code class="python">new_d = {} for key, value in d.items(): if value: new_d[key] = value</code>
<code class="python">keys_to_pop = list(d) for i in keys_to_pop: if not d[i]: d.popitem(i)</code>
Durch die Nutzung dieser Techniken können Sie das umgehen Fehler „RuntimeError: Größe des Wörterbuchs während der Iteration geändert“ beim Umgang mit Wörterbüchern in Python.
Das obige ist der detaillierte Inhalt vonWie vermeide ich den Fehler „RuntimeError: Größe des Wörterbuchs während der Iteration geändert' in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!