首先先看下面的代碼;
list1=[1,2,3,4,5,6]
list2=list1[:]
list3=list1
print(list2)
print(list3)
這段程式的輸出為;
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
從輸出結果來看,好像是一樣的,but…如果做以下修改呢?
list1=[1,2,3,4,5,6]
list2=list1[:]
list3=list1
list1.reverse() # sort 正向排序 reverse 逆向排序
print(list2)
print(list3)
這段程式的輸出結果為:
[1, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 1]
看到沒!是不是不一樣了?但是這是為什麼呢?
因為為一個清單指定另一個名字的做法,隻是向同一個清單增加一個新的标簽而已,真正的拷貝是要使用分片的方法或copy()方法,copy()方法見一下例子。
list1=[1,2,3,4,5,6]
list2=list1[:]
list3=list1
list4=list1.copy()
list1.reverse()
print(list2)
print(list3)
print(list4)
輸出:
[1, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 6]