Python3: For-Schleife überspringt Element der Liste?

Hallo!

Ich wollte letztens in Python (3.7.4) mit einer for-Schleife durch eine Liste gehen, um jedes Element unter einer bestimmten Bedingung aus der Liste zu löschen.

Eine stark vereinfachte Version könnte so aussehen:

l = [1,2,3,4,5]

for i in l:

____print(i)

____if i == 2: l.remove(i)

____if i == 3: l.remove(i)

print(l)

Hier möchte ich also alle Zweien und Dreien löschen. Das ganze geht natürlich effektiver, übersichtlicher und schöner, aber meine Bedingungen waren ja auch etwas komplizierter und hier geht es nur ums Prinzip.

Die Ausgabe sollte dann meinen Erwartungen entsprechend so aussehen:

1

2

3

4

5

[1,4,5]

Tatsächlich sieht sie dann aber so aus:

1

2

4

5

[1,3,4,5]

In der for-Schleife ist niemals i == 3. Das ist darauf zurückzuführen, dass durch das Löschen der 2 alle Elemente in der Liste einen Platz nach links rutschen, wobei die for-Schleife um das nächste Element durchzugehen einen Schritt weiter nach rechts geht. Dabei werden all jene Elemente übersprungen, die hinter einem zu löschenden Element kommen. Das kann man sich so zwar erklären, ist aber nicht intuitiv.

Und eingebettet in mein Programm hat die Fehlersuche ewig gedauert, wer rechnet schon damit, dass die for-Schleife ein Listenelement überspringt?

Ich wollte euch hier nur diesen interessanten Fund zeigen und euch auch nach eurer Meinung dazu fragen :)

Der beste Lösungsansatz wäre doch die list-Comprehension, oder?

Was sagt ihr dazu?

Viele Grüße! :D

Computer, programmieren, Python 3
Externe Festplatte lässt Explorer abstürzen - Wie repariere ich sie und sichere meine Daten verlustfrei?

Hallo,

ich vermute, meine externe Festplatte WD ist defekt. immer wenn ich sie am Laptop anschließe und öffnen will, egal welche USB-Schnittstelle (3.0, 3.1) ich nehme, stürzt der Explorer ab. Wenn ich jedoch ein paar Minuten warte, funktioniert er wieder und die Fehlermeldung "Keine Rückmeldung" verschwindet. Dann lässt sich die Festplatte sogar öffnen, auch zwischen den einzelnen Ordnern hin und her klicken ist kein Problem. allerdings passiert dasselbe Drama, wenn ich eine Datei wie ein Foto versuche zu öffnen. Der Absturz dauert dann so lange, bis ich die Festplatte einfach abziehe, wodurch der Explorer ebenso wieder zum Leben erweckt wird.

Bei dem Versuch, Dateien auf den Rechner zu kopieren hängt sich der Explorer abermals auf.

komischerweise wird die Festplatte in der Datenträgerverwaltung als fehlerfrei angezeigt. Wenn ich sie hingegen auf Fehler überprüfe über Eigenschaften --> Tools-> Prüfen, werden die 0% des Fortschritts nicht überschritten.

Vielleicht ist es ein Virus, das ich durch das Anklicken einer 16 Jahre alten, noch nie gehörten mp3 ausgelöst habe?? Jedenfalls habe ich seitdem das Problem. die Festplatte habe ich erst seit einem Jahr.

langsam verzweifle ich! Wie kann ich meine Daten möglichst verlustfrei sichern?? Es ist wirklich wichtig!! Was sind die Tricks der Profis, die sich das zum Beruf gemacht haben???

PC, Computer, Technik, Virus, Hardware, Festplatte, Datensicherung, externe Festplatte, Technologie, WD, Windows 10

Meistgelesene Beiträge zum Thema Computer