首页 > 代码库 > 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 字符串切片