python assignment trap

在Python里,赋值的时候经常要注意是赋值还是赋地址
比如下面的例子里,只有第一个是赋值,其他的均为赋地址

>>>a = 1
>>>b = a
>>>a = 2
>>>a
2
>>>b
1
>>>c = [0]
>>>d = c
>>>c[0] = 1
>>>c
[1]
>>>d
[1]
>>>e = {'1':'1'}
>>>d = e
>>>e['1'] = '2'
>>>e
{'1':'2'}
>>>d
{'1':'2'}