Python的字符串被劃分為不可變序列的類別,意味著這些字符串所包含的字符存在從左至右的位置順序,并且它們不可以在本地進(jìn)行修改。
基本操作
字符串可以通過+操作符進(jìn)行合并,可以使用*運(yùn)算符進(jìn)行重復(fù)。
?
>>>len("abc") 3 >>>'abc'+'def' 'abcdef' >>>'NI!'*4 'NI!NI!NI!NI!'
字符串內(nèi)部的一個(gè)反斜杠“\”可允許把字符串放于多行。
?
>>>str = "aaa\ ....bbb\ ....ccc\ ....ddd" >>>str aaabbbcccddd
索引和分片
在Python中,字符串中的字符是通過索引提取的。
分片X[I:J],表示“取出在X中從偏移量為I,直到但不包括偏移量為J的內(nèi)容”。結(jié)果就是返回一個(gè)新的對象。
在一個(gè)分片中,左邊界默認(rèn)為0,右邊界默認(rèn)為分片序列的長度。
?
S = 'Spam' >>>S[1:] 'pam' >>>S 'Spam' >>>S[:3] 'Spa' >>>S[:-1] 'Spa' >>>S[:] 'Spam' S[:]實(shí)現(xiàn)了一個(gè)完全的頂層的序列對象的拷貝-一個(gè)有相同值,但是是不同內(nèi)存片區(qū)的對象。 X[I:J:K]表示“索引x對象中的元素,從偏移為I直到偏移為J-1,每隔K元素索引一次“,第三個(gè)限制K,默認(rèn)為1,表示步進(jìn)。 也可以使用負(fù)數(shù)作為步進(jìn),S[::-1]的作用實(shí)際上是將序列進(jìn)行發(fā)轉(zhuǎn)。 >>>S = 'hello' >>>S[::-1] 'olleh'
字符串轉(zhuǎn)化工具
int函數(shù)將字符串轉(zhuǎn)換為數(shù)字,str函數(shù)將數(shù)字轉(zhuǎn)換為字符串表達(dá)形式。repr函數(shù)也能夠?qū)⒁粋€(gè)對象轉(zhuǎn)換為其字符串形式,然后這些返回的對象將作為代碼的字符串,可以重新創(chuàng)建對象。
不可變性
字符串屬于不可變序列,即不能在原地修改一個(gè)字符串,例如,給一個(gè)索引進(jìn)行賦值。若要改變一個(gè)字符串,需要利用合并,分片這樣的工具來建立并賦值給一個(gè)新的字符串,倘若必要的話,還要將這個(gè)結(jié)果賦值給字符串最初的變量名。
?
>>>S = 'spam' >>>S[0] = "x" #不允許修改S的值 >>>S = S + "SPAM" >>>S 'spamSPAM' >>>S = 'splot' >>>S = S.replace('pl', 'plmal') >>>S 'splmalot'
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
