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利用sqlacodegen自動(dòng)生成ORM實(shí)體類示例
這篇文章主要介紹了Python利用sqlacodegen自動(dòng)生成ORM實(shí)體類,結(jié)合實(shí)例形式分析了Python sqlacodegen安裝技巧ORM實(shí)體類相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-06-06
python tkinter實(shí)現(xiàn)界面切換的示例代碼
今天小編就為大家分享一篇python tkinter實(shí)現(xiàn)界面切換的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
FP-growth算法發(fā)現(xiàn)頻繁項(xiàng)集——構(gòu)建FP樹
常見的挖掘頻繁項(xiàng)集算法有兩類,一類是Apriori算法,另一類是FP-growth。Apriori通過不斷的構(gòu)造候選集、篩選候選集挖掘出頻繁項(xiàng)集,需要多次掃描原始數(shù)據(jù),當(dāng)原始數(shù)據(jù)較大時(shí),磁盤I/O次數(shù)太多,效率比較低下2021-06-06
Appium Python自動(dòng)化測(cè)試之環(huán)境搭建的步驟
這篇文章主要介紹了Appium Python自動(dòng)化測(cè)試之環(huán)境搭建的步驟,以32位的Windows 7操作系統(tǒng)為例介紹Appium+Python的環(huán)境搭建步驟,感興趣的小伙伴們可以參考一下2019-01-01
使用OpenCV實(shí)現(xiàn)鼠標(biāo)事件回調(diào)功能并繪制圖形
這篇文章主要為大家詳細(xì)介紹了如何使用OpenCV實(shí)現(xiàn)鼠標(biāo)事件回調(diào)功能,并通過鼠標(biāo)操作在圖像上繪制圓圈和矩形,感興趣的小伙伴可以了解下2024-11-11

