In <[EMAIL PROTECTED]>, SpreadTooThin wrote: > I'm really worried that python may is doing some things I wasn't > expecting... but lets see...
Expect that Python never copies something if don't ask explicitly for a copy. > if I pass a list to a function def fn(myList): > > and in that function I modify an element in the list, then does the > callers list get modied as well. > > def fn(list): > list[1] = 0 > > myList = [1, 2, 3] > print myList > fn(myList) > print myList > >>>> [1,2,3] >>>> [1,0,3] > > How can I avoid this? In this case this is a really simplified example > but the effects are the same... In this case: def fn(lst): lst = list(lst) lst[1] = 0 > How do I specify or create deep copies of objects that may contain > other objects that may contain other object that may contain other > objects.... See the `copy` module especially `copy.deepcopy()`. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list