"for line in x:" verhaspelt sich?

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
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Was ich in meinem ursprünglichen Post sagte und was jetzt auch wieder gemeint wurde:

Code: Alles auswählen

for l in f:
   print l
   print f.read(5)
ist böse, weil ich innerhalb der Schleife das Objekt über das ich iteriere (also f) verändere.

Code: Alles auswählen

for l in f:
    l = "blah"
    l += "blubb"
ist nicht böse, weil ich das Objekt über das ich iteriere in der Schleife nicht verändere.

Vergleiche mit:

Code: Alles auswählen

l = ["blah","blubb","gaga"]
for pos, item in enumerate(l):
    print pos, item
    del l[pos]
print l
Auch hier ändere ich wieder das Objekt über das ich iteriere, und auch hier passieren böse Dinge.

Alles klar? ;-)
--- Heiko.
Antworten