最近我已经做了2个实验:为什么在dict中的值总是在Python中改变了?
(1):
>>> a = dict(zip([1,2,3],[4]*3))
>>> a
{1: 4, 2: 4, 3: 4}
>>> a[1] = 111
>>> a
{1: 111, 2: 4, 3: 4}
(2):
>>> a = dict(zip([1,2,3],[{'a':True,'b':True}]*3))
>>> a
{1: {'a': True, 'b': True},
2: {'a': True, 'b': True},
3: {'a': True, 'b': True}}
>>> a[1]['a']=False # Here I changed the value of a[1]['a'] from True to False
>>> a
{1: {'a': False, 'b': True},
2: {'a': False, 'b': True},
3: {'a': False, 'b': True}} #all 'a' value changed to False.
为什么(2)发生在这个问题呢?为什么(1)没有这个问题?