|
在列表中append内容是是字典的同一个变量,每次append,列表中的值都会随着变量内容改变而改变。
In [1]: a=[]
..
In [3]: b={"a":2}
In [4]: a.append(b)
In [5]: a
Out[5]: [{'a': 2}]
In [6]: b["b"]=3
In [7]: b
Out[7]: {'a': 2, 'b': 3}
In [8]: a.append(b)
In [9]: a
Out[9]: [{'a': 2, 'b': 3}, {'a': 2, 'b': 3}]
然而如果变量里的内容是字符串,那列表之前append的元素不会随着变量的改变而改变
In [19]: a=[]
In [20]: a
Out[20]: []
In [21]: b="B1"
In [22]: b
Out[22]: 'B1'
In [23]: a.append(b)
In [24]: a
Out[24]: ['B1']
In [25]: b="B2"
In [26]: a.append(b)
In [27]: a
Out[27]: ['B1', 'B2']
这是为什么呢?是存储方式不同吗?
|
|