亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

海晏县| 广德县| 新干县| 长春市| 祁阳县| 琼海市| 钦州市| 奉化市| 湘西| 普洱| 大荔县| 沂源县| 鄄城县| 清原| 上栗县| 山丹县| 海门市| 白河县| 金华市| 阳新县| 自治县| 秭归县| 宜都市| 丹棱县| 麟游县| 伊金霍洛旗| 临沭县| 九江市| 江源县| 高碑店市| 黔西| 仁寿县| 乐昌市| 洪泽县| 甘德县| 永福县| 高唐县| 张家口市| 湄潭县| 营口市| 韩城市|