App下載

Python 字符切片解讀

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

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

test1 = 'Hello World!'

test2 = "w3cschool!"

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

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

運(yùn)行結(jié)果:

test1[0]:  H

test2[1:5]:  3csc

解析:

在上面的代碼中,第一個(gè)print很好理解,因?yàn)榇a的索引通常都是從0 開(kāi)始的,對(duì)于test1 = ‘Hello World!’ 來(lái)說(shuō),索引編號(hào)為

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

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

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

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

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

總結(jié)

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



0 人點(diǎn)贊