Mehrere Elemente "stilvoll" aus Listen entfernen
Verfasst: Dienstag 15. Januar 2008, 02:22
Hallo zusammen,
ich bin leider noch nicht allzu sehr vertraut mit Python und habe momentan ein Problem.
Ich habe Dateiinput mit Kommentarzeilen und möchte diese entfernen.
Nun funktioniert aber offensichtlich folgender Code nicht:
Ich hatte wohl mal gelesen, dass man in Python "for a in b" immer einem Durchlauf mit Index vorziehen solle, zwecks Performance.
Intern läuft das aber anscheinend doch über Indizes, da bei obrigem Code nur jede 2. Zeile entfernt wird (bei zusammenhängenden Kommentaren).
Nun die eigentliche Frage: wie lässt sich das schön lösen? Gibt es einen Python-spezifischen Weg?
Klar kann man einen Laufindex verwenden und diesen bei einer Löschung dekrementieren, aber schön ist das nicht.
Im Moment mache ich es so:
Aber schön ist das auch nicht...
Bin für Hilfe dankbar.
Grüße,
el_bobo
ich bin leider noch nicht allzu sehr vertraut mit Python und habe momentan ein Problem.
Ich habe Dateiinput mit Kommentarzeilen und möchte diese entfernen.
Nun funktioniert aber offensichtlich folgender Code nicht:
Code: Alles auswählen
for line in lines:
if line.startswith("#"): lines.remove(line)
Intern läuft das aber anscheinend doch über Indizes, da bei obrigem Code nur jede 2. Zeile entfernt wird (bei zusammenhängenden Kommentaren).
Nun die eigentliche Frage: wie lässt sich das schön lösen? Gibt es einen Python-spezifischen Weg?
Klar kann man einen Laufindex verwenden und diesen bei einer Löschung dekrementieren, aber schön ist das nicht.
Im Moment mache ich es so:
Code: Alles auswählen
toRemove = []
for line in lines:
if line.startswith("#"): toRemove.append(line)
for line in toRemove: lines.remove(line)
Bin für Hilfe dankbar.
Grüße,
el_bobo