嚴格的說,python沒有賦值,只有名字到對象的綁定。
所以L1=L是把L所指的對象綁定到名字L1上,而L2=L[:]則是把L通過切片運算取得的新列表對象綁定到L2上。前者兩個名字指向同一個對象,后者兩個名字指向不同對象。
換句話說,L1和L是指的同一個東西,那么修改L1也就修改了L;L2則是不同的東西,修改L2不會改變L。
注意這個引用的概念對於所有的東西都成立,例如容器內部存儲的都是引用……
L1 = L
以前有一套三室一廳的房子,戶主叫L。后來L和L1結婚,房產證上戶主的名字加了一個,但房子還是只有一套。L如果把客廳刷成了藍色,那L1回家的時候會發現客廳是藍色的了。
從前有一套三室一廳的房子,戶主叫L。后來有個叫L1的,覺得L的房子不錯,於是買了一套相同戶型的,也裝修得一模一樣。后來L把自己的客廳刷成了藍色,L1回家發現自己家的客廳還是白色,並沒有變成藍色。