[EMAIL PROTECTED] wrote: >>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.
Please verify before asserting: >>> a = [[1, 2], [3, 4]] >>> b = a[1] >>> b is a[1] True >>> id(b) 46912496915448 >>> id(a[1]) 46912496915448 >>> -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')])" -- http://mail.python.org/mailman/listinfo/python-list