python的字符串分片

1 s = "abcdefg"

对于这样一个字符串进行操作。分片格式为:

1 s[i:j:k]

其中,i和j分别代表子串的起始和末尾;-1则代表倒数第一个元素,同理-2代表倒数第二个元素......j不包括s[j]元素,也就是说s[0:2]截取的是"ab",s[0:0]则是空字符串。i的默认值是0,省略j则会截取完整个字符串。

k是步长,也分为正负两种参数,正参数代表从前往后输出,负参数则是从后往前输出,k的默认值是1。k不可取0。|k|的值代表增量,k==1时,正常输出,当|k|>1时,则会跳过元素输出,例如s[::2]得到的结果是"aceg"。通常情况下k可以省略,s[i:j]和s[i:j:1]是一样的。

举几个例子:

1.将字符串逆置

s[::-1]    #i,j取默认值

得到gfedcba

2.正序输出,但是除掉最后一个字符

s[0:-1]

得到"abcdef"

3.正序输出,倒数3个字符都舍去

s[0:-3]

得到"abcd"

4.正序输出末尾3个字符

s[-3:]     #这里j取了默认值

得到"efg"

注意如果输入s[-3:0],会得到空字符串,输入s[-3,-1]会得到"ef",所以必须省略j才能达到要求。

posted @ 2019-03-07 23:37  Alexzzzz  阅读(3349)  评论(0编辑  收藏  举报