首先先看下面的代码;
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]