利用索引值,我们每次都可以从列表获取一个元素,但我们总是贪心的,如果一次性需要获取多个元素,有没有办法实现呢?利用列表分片(slice),我们可以简单地实现这个要求。语法:列表名[起始索引:终止索引]。列表长度为:从起始索引(包含)到终止索引(不包含)。假如我们现在想将列表member从第一个元素开始分割至第三个元素,我们可以这么做:(注意:分片数组只是原数组的拷贝,原数组是不变的)
member = [1, 2, 3, 4, 5, 6]
list1 = member[0:3]
print(list1)
输出:
如果写成member[:3],也是从第一个元素截取到第三个元素如果写成member[0:],则是从第一个元素截取到最后一个元素。如果想在不破坏原数组的前提下拷贝当前列表,可以这么做:
list2 = member[:]
print(list2)
输出:
注意,这样做的好处是,list2不会随着member改变而改变。下面是详解:
list9 = list8[:] #用分片原理复制列表
list10 = list8 #用赋值原理复制列表
list8.sort()
print(list8) #输出;[1, 2, 3, 4, 5, 6, 7, 32, 34, 63, 94, 563]
print(list9) #输出;[563, 94, 63, 34, 32, 7, 6, 5, 4, 3, 2, 1]
print(list10) #输出:[1, 2, 3, 4, 5, 6, 7, 32, 34, 63, 94, 563]
由此可见:用赋值原理复制的列表会随着原列表的改变而改变,但用分片原理复制的列表不会。所以用分片原理复制列表更好。