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