Learning python..please go easy! :)
Lets say i make a dict as below :
In [10]: a = {"a":"a", "b":"b"}
In [11]: a
Out[11]: {'a': 'a', 'b': 'b'}
In [12]: b = a
In [13]: b
Out[13]: {'a': 'a', 'b': 'b'}
In [14]: c = b
Now, a
, b
and c
all point to same dict,so if i do :
In [15]: c.update({"c":"c"})
Then, understandably, all references get updated :
In [16]: c
Out[16]: {'a': 'a', 'b': 'b', 'c': 'c'}
In [17]: b
Out[17]: {'a': 'a', 'b': 'b', 'c': 'c'}
In [18]: a
Out[18]: {'a': 'a', 'b': 'b', 'c': 'c'}
But same thing won't work in below case :
In [1]: a = 3
In [2]: b = a
In [3]: c = []
In [4]: c.append(b)
In [5]: a
Out[5]: 3
In [6]: b
Out[6]: 3
In [7]: c
Out[7]: [3]
In [8]: a = 5
In [9]: b
Out[9]: 3 # this should have printed 5 and not 3 as per my understanding
I am confused as to how python places the references internally!! Does it not apply for int
, str
types or is there some special case?