Wie kann ich beim Iterieren in Python sicher Elemente aus einem Wörterbuch löschen?

Barbara Streisand
Freigeben: 2024-11-02 19:22:30
Original
789 Leute haben es durchsucht

How Can I Safely Delete Items From a Dictionary While Iterating in Python?

Elemente aus einem Wörterbuch während der Iteration löschen

Es ist oft notwendig, den Inhalt eines Wörterbuchs zu ändern, während darüber iteriert wird. Das Löschen von Elementen direkt während der Iteration kann jedoch zu Fehlern oder inkonsistenten Ergebnissen führen.

Iterieren mit del (Python 2)

In Python 2 kann das Löschen von Elementen mit del während der Iteration zu Problemen aufgrund des Iterators führen erwartet, dass die Größe des Wörterbuchs konstant bleibt. Dieses Verhalten führt zu einem RuntimeError. Stattdessen wird die Verwendung der Methoden „keys“ oder „items“ empfohlen:

<code class="python">for k in mydict.keys():
    if k == val:
        del mydict[k]

# or

for k, v in mydict.items():
    if v == val:
        del mydict[k]</code>
Nach dem Login kopieren

Iterieren mit del (Python 3)

In Python 3 gibt mydict.keys() einen Iterator und keine Liste zurück. Das Ändern des Wörterbuchs während der Iteration führt zu einem RuntimeError. Um dies zu vermeiden, konvertieren Sie den Iterator vor der Verwendung von del in eine Liste:

<code class="python">for k in list(mydict.keys()):
    if mydict[k] == 3:
        del mydict[k]</code>
Nach dem Login kopieren

Verwenden von pop()

Eine andere Möglichkeit besteht darin, die Methode pop() zum Entfernen von Elementen zu verwenden:

<code class="python">while mydict:
    k, v = mydict.popitem()
    if v == 3:
        mydict[k] = v

# or

for k in mydict.copy():
    if mydict[k] == 3:
        mydict.pop(k)</code>
Nach dem Login kopieren

Empfehlungen

Für Python 3 wird die Verwendung der Methoden „keys“ oder „items“ mit einer Listenkonvertierung empfohlen, um Laufzeit zu vermeiden Fehler. Für Python 2 sollten die Methoden „keys“ oder „items“ direkt verwendet werden, um das Wörterbuch sicher zu ändern.

Das obige ist der detaillierte Inhalt vonWie kann ich beim Iterieren in Python sicher Elemente aus einem Wörterbuch löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!