中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

肃南| 普宁市| 湟源县| 上林县| 清河县| 西林县| 喀喇沁旗| 彭山县| 福海县| 霍州市| 溆浦县| 江油市| 南木林县| 聂拉木县| 蒙自县| 汶川县| 罗田县| 广安市| 祥云县| 台江县| 彝良县| 西平县| 偃师市| 九江县| 壶关县| 绥宁县| 阿克苏市| 大英县| 东丰县| 防城港市| 兴城市| 江川县| 镇平县| 琼结县| 淮北市| 宣威市| 枣强县| 洪泽县| 广昌县| 阳春市| 荔浦县|