91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python字符串駐留是什么

發布時間:2022-01-17 15:52:30 來源:億速云 閱讀:154 作者:iii 欄目:大數據

本篇內容介紹了“python字符串駐留是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

先看下面這段代碼

>>> a = 'apple'
>>> b = 'apple'
>>> a is b
True

返回結果看起來沒毛病

再來看這段:

>>> a = 'apple!'
>>> b = 'apple!'
>>> a is b
False

這個結果是不是有點詭異

前后兩個字符串僅僅是一字之差,結果完全不同。

不信你可以自己測試一下

為了理解這段代碼的區別,里面涉及到一個概念,叫做“字符串駐留”,英文叫string intern。

什么是字符串駐留

python中萬物皆對象,某些情況下,解釋器遇到兩個看起來長的一毛一樣的對象時會做一些優化

例如上面例子中的第一段代碼,a 和 b 的值都是 apple,當解釋器準備創建第二個字符串”apple”時,解釋器會去駐留內存中查找是否已經存在“apple”對象,如果有就不在創建新的對象了,兩人共享一個老婆,哦不對,是共享一個對象。

這就是字符串駐留的概念。

所以 a 和 b 這兩個變量共享了同一個對象,因此 is 運算后返回結果為 True 。

python字符串駐留是什么

對于簡單的字符串,系統中可能大量重復存在,這樣的好處就是節省內存。駐留內存這個策略在java中也存在。

但并不是所有的字符串有會放進駐留內存中,如果都駐留的話,內存會爆炸。只有符合如下規則才有可能被駐留

  • 長度為 0 或者 1 的字符串被駐留.

  • 字符串中只包含字母,數字或下劃線時將會駐留。

  • 字符串必須是編譯時的常量字符串

例如下面的c用join方法生成的字符串就不會駐留

>>> a = "apple"
>>> c = "".join(['a','p','p','l','e'])
>>> a is c
False

“python字符串駐留是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

法库县| 崇左市| 冷水江市| 昌平区| 逊克县| 高安市| 兴城市| 集贤县| 麦盖提县| 江口县| 扶风县| 惠水县| 清流县| 兰坪| 广德县| 雷波县| 东阳市| 定日县| 盐城市| 龙陵县| 马边| 额济纳旗| 临清市| 通山县| 团风县| 北碚区| 马山县| 武功县| 延川县| 清涧县| 和政县| 新河县| 温宿县| 斗六市| 基隆市| 武宣县| 滨海县| 南和县| 淄博市| 手机| 临沭县|