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 :x

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 :

Code: Alles auswählen

liste = [1,2,3,4]
del liste[:]
Das heisst lösche jeden Index von der Liste "liste"

oder :

Code: Alles auswählen

liste = [1,2,3,4]
liste = []
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 :D
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 :wink:

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! :D

Verfasst: Mittwoch 8. Februar 2006, 19:17
von modelnine
Brauchst Du umbedingt das selbe Listenobjekt?

Wenn nein, dann geht's einfacher und schneller mittels:

Code: Alles auswählen

liste = []

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

Code: Alles auswählen

liste = []
machen.
Hab aber jetzt so umgeschrieben, dass ich nicht unbedingt das selbe Listenobjekt brauche.

Aber danke für den Tipp!