在Python中使用列表或者元组时,除了会用到索引以后,还经常会遇到切片操作。楼主最近在看《Core Python programming》,其中第105页第5点谈及到了用步长索引来进行扩展的切片操作。
>>>s = 'abcdefgh'
>>>s[::-1]
'hgfedcba'
>>>s[::2]
'aceg'
在Python的序列中(列表和元组都是序列),都可以可以使用切片操作: sequence[start : end : step] 前面两个好理解,分别为开始索引的位置和结束索引的位置(Python中提供两种索引:从左向右 0 ..... index-1 从右向左 -1 .... -index),关键是在这个step的含义。
其实呢,step在这里表示的是切片的步长(step不能为0,默认为1):
若 step > 0, 则表示从左向右进行切片。此时,start必须小于end才有结果,否则为空。例如: s[0,: 5: 2]的结果是'ace'
若 step < 0, 则表示从右向左进行切片。 此时,start