Ian Mallett wrote:
If I have something like: x = [1,2,3,4,5,6] y = x then changes to y change x.
That's a rather loose way of talking about it. What's happening is that x and y refer to the same object, so any changes made to that object will be seen through both x and y. The important things to understand are: (1) Python variables always contain references to objects, not the objects themselves. (2) The '=' operation is always reference assignment. It never copies any objects.
y = [x[0],x[1],x[2],x[3],x[4],x[5]] ...which doesn't change x when y is changed.
Also (3) The [...] notation always constructs a new list object. -- Greg