> Where can I find a good explanation when does an interpreter copy the > value, and when does it create the reference. Any good Python book. I have Learning Python and Programming Python 2nd edition and they are very good IMO.
> I thought I understand > it, but I have just typed in following commands: > > >>> a=[[1,2],[3,4]] > >>> b=a[1] > >>> b=[5,6] > >>> a > [[1, 2], [3, 4]] > >>> b > [5, 6] > > And I don't understand it. I thought, that b will be a reference to a, > so changing b should change a as well. No, you've set the name b to reference a slice of a. Slicing a list always returns a new list. To change a via b, do this: a = [[1,2],[3,4]] b = a print a print b b[1] = [5,6] print a print b -- http://mail.python.org/mailman/listinfo/python-list