Seite 1 von 1

Verfasst: Mittwoch 1. März 2006, 23:18
von modelnine
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? ;-)