On 19/12/05, Øyvind <[EMAIL PROTECTED]> wrote: > I have one function that finds some values. Then I want that function to > find new values based on the values it found first. However, by just > looping, it starts on an eternal job. > > As illustrated in: > >>> list = [1,2,3] > >>> list2 = list > >>> list2 > [1, 2, 3] > >>> for i in list: > ... print i > ... list2.append(4) > ... > 1 > 2 > 3 > 4 > 4 > 4 and it will forever continue with 4's. > > Why would list be expanded with the values of list2? How can I copy the > result from one list, and do things with the list without getting it to > expand?
Because they point to the same thing. Type "list2 is list" after your other code and see. You want list2 to be a COPY of list not a pointer to it. Do this by using list2 = list.copy() Slices create a copy, so a shortcut is: list2 = list[:] Ed _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor