Python中字符串切片詳解


在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的字符串切片就是這個樣子的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM