python3中的字串的索引和切片
阿新 • • 發佈:2019-01-06
- 索引index
python字串是不可以改變的序列,所有的序列都可以通過索引來獲取其中的資料元素 - 索引語法:
字串[整數表示式] - 說明
1.序列的正向索引是從0開始的,第二個索引為1,最後一個索引為 len(s)-1
2.序列的反向索引是從-1開始的,-1代表最後一個,-2代表倒數第二個,以此類推,第一個是 -len(s)
示例:
s = 'abcde'
>>>s[0] # a
>>>s[1] # b
>>>s[4] # e
>>>s[5] # EndexError 越界錯誤
>>>s[-1 ] # e
>>>s[-2] # d
>>>s[-5] # a
- 切片 slice
從字串序列中取出相應的元素重新組成一個字串序列 - 語法
s[(開始索引b):(結束索引e)(:(步長s))] - 注: 小括號()括起來的部分可以省略
(包含開始索引位置,不包含結束索引位置) - 說明:
- 開始索引是切片切下的位置,0代表第一個元素,1代表第二個元素, -1 代表最後一個元素
- 結束索引是切片的終止索引(但不包含終止點)
- 步長是切片每次獲取完當前元素後移動的方向和偏移量
3.1 沒有步長,相當於步長為1,(預設為1)
3.2 當步長為正整數時,取正向切片,開始索引預設為0,結束索引為最後一個元素的下一個位置
3.3 當步長為負數時,取反向切片, 反向切片時,預設的其實位置為最後一個元素,終止位置為第一個元素的前一個位置
示例:
s = 'abcde'
>>>s[0:4] # 'abcd' 1代表起始索引,4代表到此位置不取,直接結束
>>>s[:4] # 'abcd'
>>>s[2:5] # 'cde' 切片索引可以越界
>>>s[2:] # 'cde'
>>>s[0:] # 'abcde'
>>>s[:] # 'abcde'
>>>s[1:1] # ''
>>>s[4:1] # ''
>>>s[1:5] # 'bcde'
>>>s[1 :5:1] # 'bcde'
>>>s[1:5:2] # 'bd'
>>>s[::2] # 'ace'
>>>s[4:0:-1] # 'edcb' 反向切片包含起始,不包含末尾
>>>s[::-1] # 'edcba'
>>>s[-1::-1] # 'edcba'
>>>s[4::-2] # 'eca