字符串切片,即对字符串按照索引进行截取操作,获取想要的子串,分正向截取和逆向截取。
结合下面字符串索引示意图理解字符串正向索引和逆向索引:
利用索引进行切片操作时,可包含三个参数:
str[start_index:end_index:step]
- start_index:起始位置,空时默认为0
- end_index:终止位置,空时默认为字符串/列表长度
- step:步长,空时默认为1,不能为0
来2个示例:
>>> s='I like python. I am learning python!'
# 正向输出
>>> s[::]
'I like python. I am learning python!'
# 逆向输出
>>> s[::-1]
'!nohtyp gninrael ma I .nohtyp ekil I'
start_index、end_index为0时:
- 当 step>0,start_index 的空值下标为 0,end_index 的空值下标为 length,step 的方向是左到右;
- 当 step<0,start_index 的空值下标为 length,end_index 的空值下标为 0,此时反向为右到左了!
也就是说 start_index、 end_index 空值代表的头和尾,是随着 step 的正负而改变的。
来一波示例供理解:
>>> s='I like python. I am learning python!'
>>> len(s)
36
# 正向输出:s[::],s[:36:]结果相同
>>> s[:36:]
'I like python. I am learning python!'
# 逆向输出:s[::-1],s[-1::-1],s[-1:-37:-1],s[36::-1]结果相同
>>> s[::-1]
'!nohtyp gninrael ma I .nohtyp ekil I'
>>> s[-1::-1]
'!nohtyp gninrael ma I .nohtyp ekil I'
>>> s[-1:-37:-1]
'!nohtyp gninrael ma I .nohtyp ekil I'
>>> s[36::-1]
'!nohtyp gninrael ma I .nohtyp ekil I'