Clarification on Immutability please
Hi Python-list folk,
I am sure this has been answered many times before, but I need to ask it
Given that the following is valid Python 2.7.10 (when keyboarded into Idle):
mytup = ("q", "w", "e")
mytup = mytup [:2]
and even that the first id(mytup) returns the same address as the second
one, I am left wondering exactly what immutability is.
I am left concluding that mytup is not actually a tuple (even though type
(mytup) tells me that it is).
My only explanation is that mytup is, actually, a pointer to a tuple; the
pointer can't change, but the contents of that pointer (or the data to
which the pointer points) can change.
That said, if I then type
mytup = mytup + ("r", "t")
I find that this third id call returns a different address from the one
returned by the first two.
Somehow, it seems, tuples can be reduced in length (from the far end)
(which is not what I was expecting), but they cannot be extended (which I
I am probably confused, ignorant, stupid, or any combination of the above.
Can you please help me become less so?