從菜鳥教程上看來的,本地實驗了一把:
>>> a=[[0,1],[1,2],[2,3]]
>>> a.insert(2,a[1])
>>> a.append(a[3])
>>> print (a)
[[0, 1], [1, 2], [1, 2], [2, 3], [2, 3]]
增_元素:list.insert(INDEX, "{ELEMENT_NAME}")
在列表指定位置添加新的對象
增_元素:list.append(“{ELEMENT_NAME}”)
在列表末尾添加新的對象
然後進行打印:
可以看到,最後的輸出,符合預期;
用 id() 函數查看內存地址:
id(a[1])==id(a[2]) #True
id(a[3])==id(a[4]) #True
所謂的聯動:
>>> a[1][1]=0
>>> a[4][1]=4
>>> print(a)
[[0, 1], [1, 0], [1, 0], [2, 4], [2, 4]]
>>>
可以看到:
a[1][1]和a[2][1]都發生了改變;
a[3][1]和a[4][1]都發生了改變;
其中:
a[2]是從a[1]來的;
a[4]是從a[3]來的;
如果想只修改其中一個元素(子列表),必須把該子列表完整定義一遍,如在上述代碼後增加:
a[1]=[1,1]
print(a)
則輸出爲:
[[0,1],[1,1],[1,0],[2,4],[2,4]]
此後再修改子元素,不會發生聯動:
a[1][1]=5
print(a)
輸出爲:
[[0,1],[1,5],[1,0],[2,4],[2,4]]
用 id() 函數再次查看內存地址
id(a[1])==id(a[2]) #False