字符串切片:是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
本文以字符串为例。
基本语法:
顾头不顾尾:
----------类似range() 范围,顾头不顾尾 相关链接Python----range方法(函数)-CSDN博客
字符串切片语法: 序列名称[开始位置下标 : 结束位置下标 : 步长]
① 不包含结束位置下标对应的数据, 正负整数均可;------和range一样,不包含在结尾位置上的数
② 步长是选取间隔,正负整数均可,正数从左向右,负数从右向左。默认步长为1。
注意:用切片时候,注意位置,两个 下标 的位置,步长 的 位置。-----每个位置代表意思不一样,最后结果也不一样。 结合看下面案例的 6 7 8
案例:
numstr = '0123456789'
下标图示:-------对numstr字符串进行切片----------每个切片,都包含正,负,两个索引
口诀:
只顾头尾不管,步长为正正向移,步长为负则逆向移
如果还不太清楚这个原理,自己画个图就行。
案例:
numstr = '0123456789' # 下面所有的,都可以先自己画图,参考个下标,正索引,负索引,会比较明确。 # 1、从2到5开始切片,步长为1----顾头不顾尾,所以,显示的数是2到4下标的,也就是234,步长1可以省略不写 print(numstr[2:5:1]) print(numstr[2:5]) # 2、只有结尾的字符串切片:代表从索引为0开始,截取到结尾字符-1的位置 # ----顾头不顾尾,开头没有数字,默认从0开始,所以,显示的数是最开始那个,一直到4下标的,也就是01234,步长1可以省略不写 print(numstr[:5]) # 3、只有开头的字符串切片:代表从起始位置开始,已知截取到字符串的结尾 # ----顾头不顾尾,所以,头是1,所以从下标是1的开始,一直到?下标的,也就是最末尾的, # 因为结尾没有限定数字,就不考虑 不顾尾规则,步长1可以省略不写,所以是123456789 print(numstr[1:]) # 4、获取或拷贝整个字符串----类似于print(numstr),就是重新打印一次,所以是0123456789 print(numstr[:]) # 5、调整步阶:类似求偶数----从0开始,然后到结尾,但是2个步长,类似求偶数,所以是02468 print(numstr[::2]) # 6、把步阶设置为负整数:类似字符串翻转----负数,代表负索引,从右向左,就是从最右边开始,然后到最左边结束,所以是9876543210 print(numstr[::-1]) # 7、起始位置与结束位置都是负数(遵循一个原则:必须是从左向右截取) # ----这个-4和-1是起始到截止位置,不是在步长位置上,所以不是翻转。而是从-4(负索引)下标开始,到-1(负索引)下标结束。 print(numstr[-4:-1]) # 8、结束字符为负数,如截取012345678 # -----这个-1是在截止位置,不是在步长位置上,所以不是翻转。而是把正负索引,互相结合,从0(正索引)下标开始,到-1(负索引)下标结束 print(numstr[:-1])
图示:
其他案例: