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'



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章