python字符串切片操作是使用频率非常高的操作,它的一般模式是[start:end),左闭右开,索引为end的元素不会被截取,字符串切片操作会根据start和end的位置截取字符串并返回。
在交互式解释器里跟随我操作
>>> a = 'I like python'
>>> a[2:6]
'like'
>>> a[2:-7]
'like'
做切片操作时,你也可以使用反向索引
>>> a = 'I like python'
>>> a[2:]
'like python'
如果不指定结束位置,那么截取内容就是从开始位置到字符串末尾
>>> a = 'I like python'
>>> a[:-7]
'I like'
如果不指定开始位置,那么开始位置就是0
>>> a = 'I like python'
>>> len(a)
13
>>> a[2:19]
'like python'
字符串a的长度是13,索引从0开始,最大索引为12,19显然已经超出了合理范围,专业名词叫越界,但程序并没有报错,这是切片操作的一个特点,当索引越界时,切片操作将13作为了结束位置。
>>> a = '123456789'
>>> a[::2]
'13579'
[]操作符内有两个:, 这两个要分开理解,对于第一个,我们将其理解为设置索引,:左右两侧都没有明确写明索引,这就相当于既没有指定开始索引,也没有指定结束索引,因此等价于开始索引从0开始,结束索引就是字符串的末尾。
第二个: 的作用是设置切片的间隔,每隔2个索引做一次切片处理,这样就最终得到了'13579', 第2个: 设置切片间隔,也可以是负数,表示反向间隔
>>> a = '123456789'
>>> a[::-2]
'97531'
反向间隔2个索引位置进行切片,就得到了'97531', 如果想翻转字符串,则应该这样处理
>>> a = '123456789'
>>> a[::-1]
'987654321'
这段代码表示从索引0到字符串默认进行切片,处理的方式是反向间隔1个索引位置进行切片处理,这样就得到了字符串的翻转结果
QQ交流群: 211426309