Python之字串切片(String Slice)
阿新 • • 發佈:2018-11-28
1、切片操作可以從一個字串中,擷取一個字串,Python牛掰之處,好方便
2、看下基本的語法,這是一個全包括的狀態
[start:end:step]
3、預設的幾種用法
先提及幾個關鍵概念: a、第一個字元的下標是0,即從左到右,是從0開始,然後1、2、3、4、5 b、最後一個字元到下標是-1,即從右到左,是從-1開始,然後-1、-2、-3、-4、-5 因為第一個字元是0,第二個字元是1,1 = 0 + 1, 如果是反方向的話(按照迴圈來看),座標應該是-1 = 0 - 1,所以這樣的理論相當正確 [:end] //省略start,預設從起始偏移量start、即下標0開始,一直到偏移end處,記住一定是不包含end下標的字元的哦 [start:] //省略end,預設從下標start開始,一直到省略到下標end處,end的預設值是字串的長度或者為-1【錯誤的】(因為不包含最後一個end位置的下標,所以輸出整個字串,但是肯定end的預設值不可能是-1,那樣就不會輸出整個字串了) [start:end] //即有start、也有end,輸出從start下標到end下標處的字串,記得不包含end下標的字元哈 [start:end:step] //這次多了一個step、step如果不加的話,預設步長肯定是0,畢竟是要把線性表輸出的把,如果改變了step,那就可以是跳躍setp個元素輸出一個元素了 [:] //忘記介紹這種了,一個下標也不填寫的情況,預設是start == 0、end == 字串長度、step == 0,輸出整個字串
4、轉載幾種特殊的用法
提取最後N個字元: >>> letter = 'abcdefghijklmnopqrstuvwxyz' >>> letter[-3:] 'xyz' 從開頭到結尾,step為N: >>> letter[::5] 'afkpuz' 將字串倒轉(reverse), 通過設定步長為負數: >>> letter[::-1] 'zyxwvutsrqponmlkjihgfedcba' 如果自己手寫字串倒轉(reverse),根據反向從-1開始的情況,所以len(letter) - 1 ,因為正向畢竟是從0開始的,所以字串長度做end就夠了,而反向是從-1開始的,因為畢竟end是不包含自己的嘛 >>> letter[-1:-len(letter)- 1: -1]