weird iteration/assignment problem
Diez B. Roggisch
deets at nospam.web.de
Fri Jun 13 17:07:30 CEST 2008
> for i in xrange(0, len(texts)):
> texts[i] = "yes"
> for i in texts:
> i = "no"
> why is the first one working but not the second. i mean i see why the
> firts one works but i dont udnerstand why the second doesnt.
Because in the second you only bind the contents of texts to a name i.
But that doesn't mean that i magically became an "alias" for
texts[index] - it just happens to point at the same object.
To accomplish what you want, the pythonic idiom is to use enumerate:
for i, text in enumerate(texts):
text[i] = "yes"
More information about the Python-list