字符串切片,就是通过限定索引值从字符串中截取相应字符的操作,这是一项非常实用的字符串处理功能,python编程中经常用到,比如从一个文件的绝对路径字符串中截取出路径、文件名或扩展名,从杂乱的网页元素字符串中截取出网址等等。字符串切片,看似非常简单,实质还非常绕脑,所以有必要记一篇笔记,以便随时翻阅查看。

python字符串切片_python列表切片_python切片详解

人生苦短,我用Python!

1、最简单的切片

字符串最简单的切片操作python字符串切片,就是直接通过索引值来获取字符串中的字符。

格式:String[0]、String[1]、String[2]…

str1 = 'ABCDEFG'
print(str1[0], str1[1], str1[2])
输出结果:
A B C

字符串切片还可以按照反向索引切,索引值用负数来表示。

格式:String[-1]、String[-2]…

str1 = 'ABCDEFG'
print(str1[-1], str1[-2], str1[-3])
输出结果:
G F E

2、字符串与索引值正反向对应关系

3、正向切片详解

格式:String [ Start : End ],Start表示开始索引值,End表示结束索引值,注意在切片操作里,遵循包前不包后的原则,即从Start开始,到End索引值前一个为止。例如:

str1 = 'ABCDEFG'
print(str1[0:3], str1[2:5], str1[0:6])
输出结果:ABC CDE ABCDEF

如果切片从字符串头开始,则可以把Start开始索引值省略;如果切片一直到字符串尾部,则可以把End结束索引值省略。例如:

str1 = 'ABCDEFG'
print(str1[:], str1[:4], str1[3:])
输出结果:ABCDEFG  ABCD  DEFG

还可以设定切片步长,隔一个步长切一次。

格式:String [ Start : End : Step ]

str2 = '0123456789'
print(str2[0:11:2], str2[1:11:2])
输出结果:02468 13579

省略开始索引或结束索引,而有步长的情况,代码写法如下:

str2 = '0123456789'
print(str2[1::3], str2[:7:2], str2[::4])
输出结果:147 0246 048

4、反向切片详解

反向切片的基本格式与正向切片相同,但是要注意对照关系,以及包前不包后的原则。

str1 = 'ABCDEFG'
print(str1[-5:-2], str1[:-3], str1[-4:])
输出结果:CDE  ABCD  DEFG

反向切片同样可以设定步长,如下:

str1 = 'ABCDEFG'
print(str1[-6:-1:2], str1[:-3:1], str1[-4::2])
输出结果:BDF ABCD DF

重点:如果步长为负数,则开始反向切片,表示切片取字符的顺序要从右往左!

str1 = 'ABCDEFG'
print(str1[::-1], str1[:-3:-3], str1[-4::-2])
输出结果:GFEDCBA  G  DB

反向切片的方向问题一定要绕过来,这里最容易出错!

5、正向和反向索引同时使用

str1 = 'ABCDEFG'
print(str1[1:-1:2], str1[1:-1:-2])
输出结果:BDF 

从输出结果可以看到,正向和反向索引同时使用时,切片取字符的顺序是正向的,即从左往右,不能反向取字符,因此上面print语句里的第二个切片公式没有输出结果。

正向和反向索引同时使用的场景,一般是字符串较长,而切片开始位置靠近字符串开头,切片结束位置又靠近字符串尾部python字符串切片,这样就减少了很多索引值来回查数的操作。

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688