学科分类
目录
基础

切片

切片是指对序列截取其中一部分的操作。切片的语法格式如下:

[起始索引:结束索引:步长]

切片截取的范围属于左闭右开,即从起始索引开始,到结束索引前一位结束(不包含结束位本身)。我们把索引比作一把“刀”,在开始索引和结束索引的位置“切下”,“切下”的元素就是这个范围内的元素。步长的取值可以是正数和负数,默认值为1。

根据步长的取值,可以分为如下两种情况:

(1)步长大于0

按照从左到右的顺序,每隔“步长-1”(索引间的差值仍为步长值)个字符进行一次截取。这时,“起始”指向的位置应该在“结束”指向的位置的左边,否则返回值为空。

示例如下:

>>> string = 'python'
>>> string[0:6]   # 没指定步长,默认为1
'python'
>>> string[2:5:2] # 指定步长为2
'to'

在上述示例中,如果没有指定步长默认为1。以string[2:5:2]为例,通过示意图来分析切片的原理,如图1所示。

img

图1 切片示意图(步长大于0)

(2)步长小于0

按照从右到左的顺序,每隔“步长-1”(索引间的差值仍为步长值)个字符进行一次截取。这时,“起始”指向的位置应该在“结束”指向的位置的右边,否则返回值为空。

示例如下:

>>> string = 'python'
>>> string[3:0:-1]

'hty'
>>> string[0:3:-2]
''

注意,起始位置的索引必须大于结束位置的索引,否则返回空字符串。以string[3:0:-1]为例,通过示意图来分析切片的原理,如图2所示。

img

图2 切片示意图(步长小于0)

点击此处
隐藏目录