字符串切片操作

切片操作是使用频率非常高的操作,它的一般模式[start:end),左闭右开,索引为end的元素不会被截取。

在交互式解释器里跟随我操作

1. 指定开始和结束位置

>>> a = 'I like python'
>>> a[2:6]
'like'
>>> a[2:-7]
'like'

做切片操作时,你也可以使用反向索引

2. 指定开始位置,不指定结束位置

>>> a = 'I like python'
>>> a[2:]
'like python'

如果不指定结束位置,那么截取内容就是从开始位置到字符串末尾

3. 指定结束位置,不指定开始位置

>>> a = 'I like python'
>>> a[:-7]
'I like'

如果不指定开始位置,那么开始位置就是0

4. 切片操作允许索引越界

>>> a = 'I like python'
>>> len(a)
13
>>> a[2:19]
'like python'

字符串a的长度是13,索引从0开始,最大索引为12,19显然已经超出了合理范围,专业名词叫越界,但程序并没有报错,这是切片操作的一个特点,当索引越界时,切片操作将13作为了结束位置。

5. 指定切片间隔

>>> 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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案