> I have a list that I want to change in a for loop. Thats nearly always a bad thing to do. Its like the old cartoon of the guy vcutting off the branch of the tree while sitting on it. Python can get very confused.
Either make a copy and change the copy or use a while loop and an index. However, as others have pointed out: mylist = [ 'One ', ' two', ' three ' ] print mylist for element in mylist: element is a copy of the value in mylist, it is not a reference to mylist[n] element = element.strip() print "<>" + element + "<>" so changes to element are not changes to the list content. If you want to change the list content use a while loop: index = 0 while index < len(mylist): mylist[index] = '<> + mylist[index].strip() + '<>' index += 1 Or a list comprehension: mylist = ['<>' + n.strip() + '<>' for n in mylist] But notice that the comprehension builds a new list it does not actually change mylist directly in the way the while loop does. Alan G Author of the learn to program web tutor http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor