python預設序列支持+和*操作的.下麵幾種列表的賦值有的是生成一個新的列表,有的仍是原有列表. 1 ls1=[1,2,3,5,6,8] 2 ls2=ls1 3 ls2.append(9) 4 print(ls2) 5 print(ls1) 這個輸出結果可以猜出來,lst1和lst2一樣,都追加了 ...
python預設序列支持+和*操作的.下麵幾種列表的賦值有的是生成一個新的列表,有的仍是原有列表.
1 ls1=[1,2,3,5,6,8] 2 ls2=ls1 3 ls2.append(9) 4 print(ls2) 5 print(ls1)View Code
這個輸出結果可以猜出來,lst1和lst2一樣,都追加了9.因為兩者都指向同一個記憶體地址.但下麵的代碼就不同了:
1 lst1=[1,2,3,6,8] 2 lst2=lst1[:] 3 print(id(lst1)) 4 print(id(lst2))View Code
從結果來看,lst1和lst2指向了不同的記憶體地址
1 lst1=[1,2,3,6,8] 2 lst2=lst1*1 3 print(id(lst1)) 4 print(id(lst2))
輸出結果和切片操作一樣,指向了不同的記憶體地址