"Dick Moores" <[EMAIL PROTECTED]> wrote > Well, if deleting from the same list I'm traversing is the problem, > why doesn't inserting the line > lstB = lstA > > and deleting from lstB clear it up? The output is exactly the same.
You are not copying the list you are just making a second name refer to the same list. You need to make a new copy, as in: lstB = lstA[:] # a full slice creates a copy But thats not an efficient approach if you have a big list, the best route is to build a new list, preferably using a list comprehension. > I thank you for showing me another way to get the result I want, but > first I want to know why my code didn't work. The reason is as stated. Your solution didn't do what you thought it did :-) The other way you can do it is to use a while loop: n = 0 while n < len(myList): #computed each time if some_test(myList[n]): del(myList[n]) else: n += 1 Note we do not increment n when we delete an element. I cover this in the branching topic of my tutorial in the section Modifying collections from inside loops HTH, -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor