在python中字符串切片是个非常方便的方法来截取字符串,最初了解到字符串切片的时候就发现其相当方便,要比java的substring要舒服的多,这使得更加吸引我了。在我的使用过程中一直很顺利,直到遇见了-1
,才发现这玩意儿不简单,因此在这里总结一下python字符串切片的常用用法。
现在定义一个字符串
s = "abcd.efgh"
你可以这么理解这个字符串
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
字符串 | a | b | c | d | . | e | f | g | h |
首先,可以将字符串理解为一个字符组成的数组
,因此我们是可以通过数组那种用法来获取某个字符,例如想要获取字符b
,只需要
s[1]
即可得到字符b
,取其中任何一个字符方法类同。
字符串下标是支持逆向的,逆向的下标如下,
下标 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
---|---|---|---|---|---|---|---|---|---|
字符串 | a | b | c | d | . | e | f | g | h |
可以看出,逆行下标是从字符串末端开始标号的,并且从-1开始
因此想要取到字符b
,也可以
s[-8]
字符串切片就和它的名字一样,就是把字符串裁切出来,也就是拆分字符串。
这里将考虑几种常见的字符串拆分处理方法:
这里a和b代表的都是整数,是编程时候代码中的整数,不管是数值还是表达式,最终你得是整数。
例如要取下标从2到5的字符串,那就是
s[2:6]
例如取下标2以后的所有内容,那么就是
s[2:]
例如要取下标为5以前的所有字符串,那么就是
s[:6]
例如要每隔1个字符取字符串,那么就是
s[::2]
s[-1::-1]
效果如下
s[:-1]
例如,从下标2开始逆置前面的字符串就是
s[2::-1]
例如逆序输出2到5的字符串
s[5:2:-1]
s[::-2]
效果如下
本期关于字符串切片的内容就到这里了,以上内容已经几乎囊括了字符串切片相关的大部分内容和一些常用的场景,如果以后遇到新的问题还会继续更新。