Hallo,
kann mir das einer erklaeren:
i=0
print(len(list))
while i<=(len(list)):
#remove old objects from stack
list.pop(0)
i+=1
print(len(list))
Ausgabe:
90
44
wie kommt das? Warum sind noch so viele in der Liste
Patrick
stack...pop()
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Sehr knifflig Na schaun wir mal schrittweise:
Ok, am Anfang hat liste 90 elemente, len(liste) ist also 90. i=0
while i <= len(liste) ist also while i <= 90.
Gut, wir poppen (:)) also ein Element weg. Aber wie gross ist jetzt len(liste)?! 89
D.h. wir haben while i <= 89. Naja, und so weiter len(liste) wird also immer kleiner, und i immer grösser.
Ums anschaulicher zu machen, versuch mal das:
UPDATE: Hier noch die Lösung des "Problems":
Gruß, mawe
Sehr knifflig Na schaun wir mal schrittweise:
Ok, am Anfang hat liste 90 elemente, len(liste) ist also 90. i=0
while i <= len(liste) ist also while i <= 90.
Gut, wir poppen (:)) also ein Element weg. Aber wie gross ist jetzt len(liste)?! 89
D.h. wir haben while i <= 89. Naja, und so weiter len(liste) wird also immer kleiner, und i immer grösser.
Ums anschaulicher zu machen, versuch mal das:
Code: Alles auswählen
In [1]: liste = [1 for i in range(90)]
In [2]: i = 0
In [3]: while i <= len(liste):
...: print "%i <=> %i" % (i, len(liste))
...: liste.pop(0)
...: i += 1
Code: Alles auswählen
In [5]: liste = [1 for i in range(90)]
In [6]: i = 0
In [7]: length = len(liste)
In [8]: while i < length:
...: liste.pop(0)
...: i += 1
...:
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
oder halt so:
Gruss
Code: Alles auswählen
while len(liste) > 0:
liste.pop(0)
Gruss
Oder du arbeitest mit einer Kopie der Liste
Code: Alles auswählen
count = 0;
liste = [1 for i in xrange(20)]
for i in liste[:]:
liste.pop()
count += 1
print len(liste)
print count
Gruß, Johannes
[b][color=red]ascii stupid question,
get stupid ansii[/color][/b]
[url]http://www.hehejo.de[/url]
[b][color=red]ascii stupid question,
get stupid ansii[/color][/b]
[url]http://www.hehejo.de[/url]