Python字符串的創(chuàng)建和駐留機(jī)制詳解
字符串
字符串在Python中是基本數(shù)據(jù)類型,是一個(gè)不可變的字符序列。
字符串駐留機(jī)制
僅保存一份相同且不可變字符串的方法,不同的值被存放在字符串的駐留池中,Python的駐留機(jī)制對(duì)相同的字符串只保留一份拷貝,后續(xù)創(chuàng)建相同字符串時(shí),不會(huì)開辟新空間,而是把該字符串的地址賦給新創(chuàng)建的變量。
駐留機(jī)制的幾種情況(交互模式windows+r,cmd)
1、字符串的長(zhǎng)度為0或1時(shí)
2、符合標(biāo)識(shí)符的字符串
3、字符串只在編譯時(shí)進(jìn)行駐留,而非運(yùn)行時(shí)
b在運(yùn)行前連接abc,而c是在運(yùn)行時(shí)連接,因此c沒有駐留,開辟了新的空間
4、[-5, 256]之間的整數(shù)數(shù)字
sys中的intern方法強(qiáng)制兩個(gè)字符串指向同一個(gè)對(duì)象
PyCharm對(duì)字符串進(jìn)行了優(yōu)化處理
a = 'abc%'
b = 'abc%'
print(a is b) # True
字符串駐留機(jī)制優(yōu)缺點(diǎn)
當(dāng)需要相同的字符串時(shí),可以直接從字符串池里拿出來用,避免頻繁的創(chuàng)建和銷毀,提升效率并節(jié)約內(nèi)存。因此拼接字符串和修改字符串是會(huì)比較影響性能的。
在需要進(jìn)行字符串拼接時(shí)建議使用str類型的join方法,而非+,因?yàn)閖oin()方法是先計(jì)算出所有字符串中的長(zhǎng)度,然后再拷貝,只new一次對(duì)象,效率比“+”高。
到此這篇關(guān)于Python字符串的創(chuàng)建和駐留機(jī)制詳解的文章就介紹到這了,更多相關(guān)Python字符串駐留機(jī)制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù)
大家好,本篇文章主要講的是python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02Python機(jī)器學(xué)習(xí)之K-Means聚類實(shí)現(xiàn)詳解
這篇文章主要為大家詳細(xì)介紹了Python機(jī)器學(xué)習(xí)之K-Means聚類的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Python可視化Matplotlib散點(diǎn)圖scatter()用法詳解
這篇文章主要介紹了Python可視化中Matplotlib散點(diǎn)圖scatter()的用法詳解,文中附含詳細(xì)示例代碼,有需要得朋友可以借鑒參考下,希望能夠有所幫助2021-09-09解決pymongo連接數(shù)據(jù)庫報(bào)錯(cuò)certificate verify failed:certific
這篇文章主要介紹了解決pymongo連接數(shù)據(jù)庫報(bào)錯(cuò)certificate verify failed:certificate has expired問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01