在python中,我們定義好一個字符串,如下所示。
s = 'abcdefghijklmnop'
在python中定義個字符串然后把它賦值給一個變量。我們可以通過下標訪問單個的字符,跟所有的語言一樣,下標從0開始。這個時候呢,我們可以通過切片的方式來截取出我們定義的字符串的一部分。使用切片的時候我們有兩種方式:
1.沒有步長的簡單切片
語法格式是這樣的:
1.首先定義一格字符串,比如叫s,然后給它賦值
2. 截取字符串中的一部分,我們用的語法是 s[ start : stop ]
注意一下: 在這里呢,start表示的是字符串要截取的開始下標,stop 表示終止的字符串結束的前一個位置。
>>>s = 'spam' >>>s[0], s[-2] ('s', 'a') >>>s[1:3], s[1:], s[:-1] ('pa', 'pam', 'spa') >>>
從上面我們可以知道,如果從開頭截取到某個特定的位置可以用 [ : a]來表示
>>>s = 'abcdefghijklmnop' >>>s[:8] 'abcdefgh'
如果從某一位開始截取到最后一位可以用[ a : ]來表示
>>>s[8:] 'ijklmnop'
這里有一點要說明, 在 pyhton中的字符串的索引序號可以是正數也可以是負數,從-1開始算:
>>>s[-1] 'p' >>>s[-5] 'l'
所以我們還可以這么玩:
>>>s[-3:] 'nop'
2.有步長的切片方式
另外的一種切片方式就是,首先還是定義一格字符串的變量,然后間隔的取出我們的字符串中的字符。
語法格式:
s [start: stop: stride]
同樣這里取出來的字符串的結束字符是stop結束的前一個字符
stride表示的是間隔的取出字符串
下面來看幾個例子:
>>>s = 'abcdefghijklmnop' >>>s[1:10:2] 'bdfhj' >>>s[::2] 'acegikmo'
這個時候我們可以還可以反轉字符串
>>>s[::-1] 'ponmlkjihgfedcba'
間隔逆向的取出字符串:
>>>s[::-2] 'pnljhfdb'
反方向的截取部分的字符串:
這個時候我們將步長的那個地方設置為負數,表示從右向左取字符串,步長的絕對值大於1表示間隔的取數。
開始的部分那個截取下標也要從負數計算,或者start必須大於結束的下標,因為它是從右開始的截取的。
>>>s = 'abcdefghijklmnop' >>>s[-1:-8:-1] 'ponmlkj' >>>s[-1:3:-2] 'pnljhf' >>>s[10:1:-3] 'khe'
python的字符串切片就是這個樣子的。