On Mar 21, 2:05 pm, Jeremy N <[EMAIL PROTECTED]> wrote: > I am working with Python in Maya, and have run into a problem with a > variable changing its contents without being scripted to do so. The > various print() statements below were from my efforts to track down > where it was occurring. I left them in so that anyone running this > will more easily see what's happening. > > On the line that reads 'dx = d1 / dx ; print("dx = %f" % dx)' there > is something happening to the variable that is being printed > repeatedly between the lines. The print statements prior to this > particular line print '...xlist[0][1] = 0.5' . However, on this > line, that variable is being updated to reflect a new value, when no > assignment to that variable has been made at that time. > > This leads me to believe that the variables 'dx' and 'xlist[0][1]' > are inexplicably linked.
Actually xlist[i] and ylist[i] are explicably the same for all relevant values of i. > I have no idea why. Please help me. Keep reading ... > > a=[5,0,3,4] > b=[8,3,0,10] > c=[2,4,10,0] > > nlist = [a,b,c] > xlist = [[],[],[]] > > for i in range(len(nlist)) : > relist = list(nlist) > relist.pop(i) Aside: I am NOT going to try to guess what your algorithm should do; I just hope you know what the above is doing ... like why not del relist[i] if you're not interested in the popped value? > dlist = list(nlist[i]) > dlist.pop(0) ; dlist.pop(i) > for j in range(len(relist)) : > d1 = float(nlist[i][0]) > d2 = float(relist[j][0]) > dx = float(dlist[j]) > r1 = 1 - ( abs(d1-dx) / float(d2) ) > if r1 == 0.0 : > r1 += (d1 < d2) > xlist[i].append(float(r1)) > > del d1, d2, dx, relist, dlist > > ylist = list(xlist) insert here: print [id(e) for e in xlist], [id(e) for e in ylist] You'll see that list(xlist) gives you a shallow copy i.e. it doesn't dig deeper and copy the contents of the lists at the next level. You need the deepcopy function of the copy module -- do read the docs. Aside #2: "print" is a statement, not a function. > print(xlist) > print(ylist) > [snip] HTH, John -- http://mail.python.org/mailman/listinfo/python-list