iterierte liste zur Laufzeit erweitern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Liebes Forum
Ist es konsistent, dass eine Liste zur Laufzeit erweitert wird, wenn gleichzeitig darüber iteriert wird?

Code: Alles auswählen

a = range(10)
for i in a:
    a.append(i)
Hier hängt er sich auf..
[url=http://www.proandkon.com]proandkon.com[/url]
deets

Natuerlich haengt er sich auf. Du hast ja auch eine Endlos-Schleife programmiert.

Generell ist es schlechter Stil, Collections, auf denen man arbeitet, gleichzeitig zu veraendern. Ausnahmen bestaetigen die Regel.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Iteriere also über eine Kopie von a, wenn du a verändern möchtest.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

mzh hat geschrieben:

Code: Alles auswählen

a = range(10)
for i in a:
    a.append(i)
Wenn die 10 Elemente von `a` durchlaufen wurden, hast du wieder 10 neue Elemente an `a` drangehangen. Diese werden also auch noch durchlaufen und hängen dabei wieder 10 neue dran, usw.
Antworten