首页 > 代码库 > python 字符串切片

python 字符串切片



python 的字符串切片:


可以正向切片,也可以反向切片,并且能够偶数切片,奇数切片( 同时都是支持正向反向的 )


先说索引,python的字符串(数组也是这样),索引默认从0开始,如果是倒序切片,则最后一个字符串(数组的最后一个元素)的索引是  -1。


当索引为负数的时候,计数从字符串的右边开始。


切片的基本模式是:


str[start:end:step]


其中,任意一项都可以为空。


索引的结束值,不能被取到,被取到的最后一个值是 索引 - 1 对应的元素( 其实因为是索引下标从0 开始计数的原因 )


1. 省略起始索引的话,如果结束索引是大于0的数,表示起始索引为0 

即  str[:n]  =  str[0:n]


>>> str = ‘abcdefg‘
>>> str[:1]
‘a‘
>>> str[0:1]
‘a‘
>>> str[:3]
‘abc‘
>>> str[0:3]
‘abc‘


2. 省略结束索引的话,如果起始索引是大于0的。表示结束索引是最后一个,这种情况是不同于结束索引等于

>>> str[2:]
‘cdefg‘
>>> str[2:7]
‘cdefg‘


3. 省略step的话,又省略end的话,step默认为1 ,即正向切片,省略end,而start为正的情况,前面已经说过,表示end为最后一个字符。


>>> str[2:]
‘cdefg‘
>>> str[2::1]
‘cdefg‘


3.1 如果step 为负值,表示反向切片,或者叫倒序切片


>>> str = ‘abcdefg‘
>>> str[2::-1]
‘cba‘

3.1.1 在 倒序切片的时候,如果end或者start哪个省略了,前文已经表述。


3.1.2  如果想做 奇数切片,那么就要在step的选择上做文章:


>>> str = ‘abcdefg‘
>>> str[::2]
‘aceg‘


4. 现在说明 start 或者 end 为负的情况:


4.1 

这个需要跟 step结合起来说,如果step为正(省略step的话,默认就是正,为1)

这种情况,就是从start 开始对应的位置开始,向后,取字符,一直到字符串结束。


>>> str = ‘abcdefg‘
>>> str[-3::]
‘efg‘


>>> str[-6::]
‘bcdefg‘
>>> str[-6:]
‘bcdefg‘


4.2  如果step 为负的话,当start也为负的时候,


step为-1 表示 反向切片,即倒序切片。而start为负数表示,从负数索引对应的那个元素开始取元素



# -6 对应b ,-1 表示反向切片

>>> str = ‘abcdefg‘
>>> str[-6::-1]
‘ba‘



本文出自 “linux与网络那些事” 博客,请务必保留此出处http://khaozi.blog.51cto.com/952782/1852078

python 字符串切片