Seite 1 von 1
Elemente einer Liste löschen
Verfasst: Mittwoch 8. Februar 2006, 16:03
von Kathrin
Hallo!
Mein Problem ist eigentlich ganz einfach, ich möchte alle Elemente meiner Liste löschen. Ich versteh einfach nicht, warum es nicht so funktioniert, wie ich es versucht hab
Code: Alles auswählen
liste = [1, 2, 3, 4]
for item in liste:
liste.pop() #klappt nicht
del liste[-1] #klappt auch nicht
print liste
--> [1, 2]
Kann mir jemand sagen, warum nicht alle Elemente gelöscht werden?
Danke,
Kathrin!
Verfasst: Mittwoch 8. Februar 2006, 16:11
von Gunnar
Hi Kathrin,
z.B. mit :
Das heisst lösche jeden Index von der Liste "liste"
oder :
Dann hat man die Variable "liste" mit einer neuen, leeren Liste überschrieben.
Gruss,
Gunnar
Verfasst: Mittwoch 8. Februar 2006, 16:14
von Kathrin
Hey, danke für die schnelle Antwort!
Es klappt, jippi
Du kannst mir aber nicht zufällig sagen, warum's auf meine Art nicht funktionert hat, oder?!
Verfasst: Mittwoch 8. Februar 2006, 16:25
von Gunnar
Ja Kathrin,
den Fehler habe ich letzt auch gemacht und dazu sagte modelnine :
Iterieren über ein Objekt was verändert wird hat meißtens nicht die gewünschten Konsequenzen (bei Listen werden dann eine entsprechende Anzahl von Elementen übersprungen, bei Dicts bricht das Programm mit einer Exception ab).
Bei dir wurde der Schleifeninhalt nur zweimal ausgeführt, weil der Liste die items unter'm Hintern weggerissen wurden
Gruss,
Gunnar
Verfasst: Mittwoch 8. Februar 2006, 16:32
von Kathrin
Ja, sowas hab ich mir schon gedacht ...
Also danke nochmal ... hast mir echt geholfen!

Verfasst: Mittwoch 8. Februar 2006, 19:17
von modelnine
Brauchst Du umbedingt das selbe Listenobjekt?
Wenn nein, dann geht's einfacher und schneller mittels:
Verfasst: Donnerstag 9. Februar 2006, 09:14
von Kathrin
Also erst hab ich gedacht, dass ich das selbe brauche, darum konnte ich's nicht mit
machen.
Hab aber jetzt so umgeschrieben, dass ich nicht unbedingt das selbe Listenobjekt brauche.
Aber danke für den Tipp!