References and copying
bruno at modulix
onurb at xiludom.gro
Fri Jun 9 12:07:14 EDT 2006
danmcleran at yahoo.com 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 'onurb at xiludom.gro'.split('@')])"
More information about the Python-list
mailing list