Python字符串的創(chuàng)建和駐留機制詳解
字符串
字符串在Python中是基本數(shù)據(jù)類型,是一個不可變的字符序列。
字符串駐留機制
僅保存一份相同且不可變字符串的方法,不同的值被存放在字符串的駐留池中,Python的駐留機制對相同的字符串只保留一份拷貝,后續(xù)創(chuàng)建相同字符串時,不會開辟新空間,而是把該字符串的地址賦給新創(chuàng)建的變量。

駐留機制的幾種情況(交互模式windows+r,cmd)

1、字符串的長度為0或1時


2、符合標識符的字符串

3、字符串只在編譯時進行駐留,而非運行時

b在運行前連接abc,而c是在運行時連接,因此c沒有駐留,開辟了新的空間
4、[-5, 256]之間的整數(shù)數(shù)字

sys中的intern方法強制兩個字符串指向同一個對象

PyCharm對字符串進行了優(yōu)化處理
a = 'abc%'
b = 'abc%'
print(a is b) # True
字符串駐留機制優(yōu)缺點
當需要相同的字符串時,可以直接從字符串池里拿出來用,避免頻繁的創(chuàng)建和銷毀,提升效率并節(jié)約內(nèi)存。因此拼接字符串和修改字符串是會比較影響性能的。
在需要進行字符串拼接時建議使用str類型的join方法,而非+,因為join()方法是先計算出所有字符串中的長度,然后再拷貝,只new一次對象,效率比“+”高。
到此這篇關(guān)于Python字符串的創(chuàng)建和駐留機制詳解的文章就介紹到這了,更多相關(guān)Python字符串駐留機制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用sqlacodegen自動生成ORM實體類示例
這篇文章主要介紹了Python利用sqlacodegen自動生成ORM實體類,結(jié)合實例形式分析了Python sqlacodegen安裝技巧ORM實體類相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-06-06
python tkinter實現(xiàn)界面切換的示例代碼
今天小編就為大家分享一篇python tkinter實現(xiàn)界面切換的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
FP-growth算法發(fā)現(xiàn)頻繁項集——構(gòu)建FP樹
常見的挖掘頻繁項集算法有兩類,一類是Apriori算法,另一類是FP-growth。Apriori通過不斷的構(gòu)造候選集、篩選候選集挖掘出頻繁項集,需要多次掃描原始數(shù)據(jù),當原始數(shù)據(jù)較大時,磁盤I/O次數(shù)太多,效率比較低下2021-06-06
Appium Python自動化測試之環(huán)境搭建的步驟
這篇文章主要介紹了Appium Python自動化測試之環(huán)境搭建的步驟,以32位的Windows 7操作系統(tǒng)為例介紹Appium+Python的環(huán)境搭建步驟,感興趣的小伙伴們可以參考一下2019-01-01
使用OpenCV實現(xiàn)鼠標事件回調(diào)功能并繪制圖形
這篇文章主要為大家詳細介紹了如何使用OpenCV實現(xiàn)鼠標事件回調(diào)功能,并通過鼠標操作在圖像上繪制圓圈和矩形,感興趣的小伙伴可以了解下2024-11-11

