App下載

Python 字符切片解讀

猿友 2020-12-30 14:36:19 瀏覽數(shù) (2654)
反饋

今天小編在學(xué)習(xí)的 Python 的時候,學(xué)到切片字符這部分,總是有很多疑惑,為什么明明 [1:5] ,但是輸出結(jié)果中總是輸出到 4,不會輸出到 5。下面我們舉例說明:

test1 = 'Hello World!'

test2 = "w3cschool!"

print ("test1[0]: ", test1[0])

print ("test2[1:5]: ", test2[1:5])

運行結(jié)果:

test1[0]:  H

test2[1:5]:  3csc

解析:

在上面的代碼中,第一個print很好理解,因為代碼的索引通常都是從0 開始的,對于test1 = ‘Hello World!’ 來說,索引編號為

字符 H e l l o W o r l d !
索引編號 0 1 2 3 4 5 6 7 8 9 10 11

通過上面的索引編號可以看出,print ("test1[0]: ", test1[0]) 輸出的應(yīng)該是索引為0 的字符,即:H。

字符 w 3 c s c h o o l !
索引編號 0 1 2 3 4 5 6 7 8 9

這時候小編同理比較認為第二個 print——print ("test2[1:5]: ", test2[1:5]) 通過如上表格可以發(fā)現(xiàn),應(yīng)該是輸出:3csch 。結(jié)果打印出來的結(jié)果是 : 3csc 小編是百思不得姐,為啥子呢,后來再往下學(xué),心里也一直記掛這個問題,差點都掉發(fā)了(趕緊摸摸頭頂有沒有又禿一分?。。?/p>

經(jīng)過查找資料發(fā)現(xiàn),在 Python 中,截取的時候如果用了 [ : ] ,那么這次截取采取左閉右開的原則,截取的時候右邊的是開環(huán),也就是說是不包含的,就如上寫的 test2[1:5],其中 5 是不包含在內(nèi)的,所以最后的輸出結(jié)果,其實只打印到 4 就結(jié)束了。故輸出結(jié)果應(yīng)該是 3csc。

總結(jié)

  1. python 中可使用 [ ] 截取字符
  2. Python 中截取時如果用了 [ : ] ,那么采用的原則是左閉右開,左側(cè)包含,右側(cè)的元素是不會被包含的。
  3. Python 中的字符串,list,tuple 的截取都適用上述原則



0 人點贊