本文之中部分内容是参考的如下两链接和《Python编程从入门到实践》并加以整理
参考链接:
https://blog.youkuaiyun.com/qingyulove/article/details/80364418
切片即slice操作,是对列表中部分元素操作的有效方法,可以省略for语句
先说[a:b]这种情况,与range()函数相似,切片list[a:b]中的索引是按照集合[a,b)取a不取b方式来取得的,
即只能取到b下标的前一项,无法取到b所指代的元素
#list列表中含有a~j,共10个元素下标0,1,2,3,4,5,6,7,8,9
list = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh', 'iii', 'jjj']
#按照索引取的某个元素,例如取得下标为4的第五个元素eee
print(list[4])
#若要输出前b个元素,可以使用list[0:b]
#如要输出列表中前三个元素,指定索引0~3,将输出0、1、2为下标的元素
print(list[0:3])
#也可以省略0,即不指定起始索引时将自动从表头开始。
#如list[:b]默认从起始位置输出到b的前一位,即输出b个数
print(list[:3])
#同理,若不指定终止索引,则会从起始索引处输出到列表末尾
print(list[6:])
#若要输出第a到b的元素,可使索引指为list[a-1,b]
#如提取第2~4个元素,可将起始索引指定为1,终止索引指定为4
print(list[1:4])
#负数索引会返回离列表末尾相应距离的元素,若要输出后a个元素,可使用 list[-a:]
#如提取后3位元素,使用list[-3:]
print(list[-3:])
#若要提取后a位之前的所有元素,则使用list[:-a]
print(list[:-3])
#完整切片的语法是[N:M:S],其中N是指起始索引,M是指终止索引,取N不取M,S代表step缺省时为1,当S>0时取切片为从左向右取
#list[::]表示取得list中的全部元素,同list[::1]
print(list[::])
#list[::2]中step = 2,表示步长为2,每隔一个元素输出
print(list[::2])
#当S<0时,缺省值:N=-1,M=-len(s)-1,方向从右向左取
#接下来两条语句是等价的
print(list[::-1])
print(list[-1:-len(list)-1:-1])
#下面四条语句作为对比
print(list[1:2:1])
#这种情况取不到元素
print(list[1:2:-1])
#这种情况也取不到元素
print(list[2:1:1])
print(list[2:1:-1])