1. 程式人生 > 其它 >02_python基礎-字串駐留機制

02_python基礎-字串駐留機制

字串駐留機制

僅儲存一份相同且不可變字串的方法,不同的值被存放在字串的駐留池中,Python的駐留機制對相同的字串只保留一份拷貝後續建立相同字串時,不會開闢新空間,而是把該字串的地址賦給新建立的變數

駐留機制的幾種情況

1)字串的長度為0或1時;
2)符合標誌符的字串;(只有字母數字和_組合才可以,如abc%就不行,因為有%)
3)字串只在編譯時進行駐留,而非執行時;
4)[-5, 256]之間的整數數字。

解釋3):舉例如下
a = 'abc'
b = 'ab' + 'c'
c = ''.join(['ab', 'c'])
print(a is b)  # True 地址相同
print(a is c)  # False 地址不同
'''a和b地址相同,是因為b的值是在執行前就已經連線好字串了,而c的值是利用join函式對列表的資料進行連線的,也就是說join操作是在程式執行時候才完成的賦值,當然會去開闢空間儲存abc的值,並沒有產生駐留'''

字串駐留機制優缺點

缺點:當需要值相同的字串時,可以從字串池拿來使用,避免頻繁的建立和銷燬,提升效率和節約記憶體,因此拼接字串和修改字串是會比較影響效能的;
優點:在需要進行拼接是建議使用str.join()方法,而非“+”,因為join()方法是先計算所有字串長度,然後再拷貝,只new一次物件,效率要比“+”高