這章我們學(xué)習(xí)一個(gè)新的字符串操作,切片。
切片其實(shí)是索引的拓展應(yīng)用,索引是取字符串中的某一個(gè)字符,而切片顧名思義,就是根據(jù)索引把字符串中的一段字符給切下來。生成一個(gè)新的字符串。
雖然說是切下來,但其實(shí)就是復(fù)制,不是剪切出來。所以原有的字符串并不會發(fā)生改變。
我還是用上章的好好學(xué)習(xí),天天向上。的字符串操作切片。我要復(fù)制good。
info = 'good good study day day up'
print(info[0:4])
為什么會是4號索引,因?yàn)檫@里有個(gè)顧頭不顧尾原則,和我們前面學(xué)range是一樣的。我們繼續(xù)打印info,看看它整體有沒有變化。
一點(diǎn)變化都沒有,所以切片只是復(fù)制!把復(fù)制出來的字符串,放到了新的內(nèi)存空間里。
切片也能用負(fù)數(shù),和前面講的反向索引取值一樣。我要取后面的day up。
print(info[-6:-1])
但是這里沒有取到最后一個(gè)字符p,因?yàn)轭欘^不顧尾!
還是上面的代碼,我把4去掉,這就代表從0開始,后面全部取完。
print(info[0:])
我把0去掉,就剩下4,代表4前面的全部取到。
print(info[:4])
如果你冒號兩邊什么都不寫,那就是字符串全部取到。
print(info[:])
切片還有一個(gè)操作,就是指定步長,和前面range是一樣的,但是用法不一樣。range括號里面是逗號,但是切片是冒號。
print(info[0:20:3])
這個(gè)意思就是從0開始,每次取值都是加3步,最后取到第20號,但是第20號是d,所以取不到。
我用表格給顯示,就清楚了。
然后我們再來打印,看看是不是我們分析的那樣。
步長講完之后,還有一個(gè)叫反向步長。
還是剛才的0:4,我在后面加上一個(gè)-1。
print(info[0:4:-1])
什么都打印不出來,這是因?yàn)檫@行代碼是從0到4,也就是從左往右取,但是步長-1與偶表示從右往左,這就和你往前走四步,然后腳往后邁一樣。不可能做到的。
所以要把0和4互相交換位置,不過要注意的是從右往左,4是空格,又是顧頭不顧尾,所以第一個(gè)g取不到。所以結(jié)果就是空格doo,我們打印一下,看看是不是我們分析的結(jié)果。
print(info[4:0:-1])
結(jié)果和我們分析的一樣。
還有最后一個(gè)操作,我們括號里什么都不寫,然后最后寫-1。這就表示從0開始什么都取到,但是倒著取。
print(info[::-1])
到這里我們就把切片講完了,可以自己多練習(xí)聯(lián)系!
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 字符串詳解之切片