Entfernen Sie Elemente aus einer Liste, während Sie iterieren, ohne zusätzlichen Speicher in Python @ zu verwende

Mein Problem ist einfach: Ich habe eine lange Liste von Elementen, die ich durchlaufen möchte, und überprüfe jedes Element gegen eine Bedingung. Abhängig vom Ergebnis der Bedingung möchte ich das aktuelle Element der Liste löschen und wie gewohnt darüber iterieren.

Ich habe ein paar andere Threads zu diesem Thema gelesen. Zwei Lösungen sind vorzuschlagen. Erstellen Sie entweder ein Wörterbuch aus der Liste (was bedeutet, dass eine Kopie aller Daten erstellt wird, die in meinem Fall bereits den gesamten Arbeitsspeicher ausfüllen). Gehen Sie entweder die Liste in umgekehrter Reihenfolge durch (was das Konzept des Algorithmus, den ich implementieren möchte, verletzt).

Gibt es einen besseren oder eleganteren Weg, als dies zu tun?

def walk_list(list_of_g):
    g_index = 0
    while g_index < len(list_of_g):
        g_current = list_of_g[g_index]
        if subtle_condition(g_current):
            list_of_g.pop(g_index)
        else:
            g_index = g_index + 1

Antworten auf die Frage(8)

Ihre Antwort auf die Frage