网站首页 > 基础教程 正文
字符串切片,就是通过限定索引值从字符串中截取相应字符的操作,这是一项非常实用的字符串处理功能,python编程中经常用到,比如从一个文件的绝对路径字符串中截取出路径、文件名或扩展名,从杂乱的网页元素字符串中截取出网址等等。字符串切片,看似非常简单,实质还非常绕脑,所以有必要记一篇笔记,以便随时翻阅查看。
1、最简单的切片
字符串最简单的切片操作,就是直接通过索引值来获取字符串中的字符。
格式: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学习(8):字符串
- 下一篇: Python:字符串操作常用方法
猜你喜欢
- 2025-01-06 一听就懂:用Python做一个超简单的小游戏
- 2025-01-06 ArcGIS 一个独立运行的Python程序编写和打包
- 2025-01-06 Python基础入门之字符串使用方法详解
- 2025-01-06 python txt文件截取数据处理
- 2025-01-06 手把手教会你使用Python进行jieba分词
- 2025-01-06 Python:字符串操作常用方法
- 2025-01-06 Python学习(8):字符串
- 2025-01-06 Python字符串详细介绍
- 2025-01-06 盘点一个Excel数据分割和explode()实战问题
- 2025-01-06 Python数据类型之字符串(String)
- 01-08将 Excel 表格中每三行合并到一个单元格中,用“、”隔开
- 01-08使用办公软件按表格中从上往下合并成1个TXT文档并添加分隔符号
- 01-08新歌尝鲜 3《分割线》
- 01-08怎么分割视频?这几种分割方法非常简单
- 01-08视频怎么分割?教你简单的三种方法
- 01-08分隔:整理大脑的 5 种方法
- 01-08「深度」凯文-杜兰特的九年雷霆光阴
- 01-08深度丨涅磐重生到“超级3D”球星?他还是无所不能的保罗·乔治
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)