Very true. Paul
Kent Johnson wrote: > Paul D. Eden wrote: > >>Lists are mutable, you are right. >> >>But the code you gave does not change the list. It changes the variable >>element which is separate from the list myList. >> >>If you want to change the list try something like this: >> >>mylist = [ 'One ', ' two', ' three ' ] >>print mylist >>newlist = [] >>for element in mylist: >> element = element.strip() >> newlist.append(element) >> print "<>" + element + "<>" >>print newlist >> >>OR >> >>mylist = [ 'One ', ' two', ' three ' ] >>print mylist >>mylist = [element.strip() for element in mylist] >>for element in mylist: >> print "<>" + element + "<>" >>print mylist > > > Neither of these changes the original list either. They both create new > lists with the desired contents. The second example binds the new list > to the old name, but it is still a new list. In many cases this is fine, > but the distinction is important. For example if you are writing a > function that modifies a list passed to it, these solutions won't work. > Bob's solution using enumerate() is the simplest way to modify a list in > place. > > Kent > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor