[英]Set of 10-char strings in Python is 10 times bigger in RAM as expected
[英]Python strings in RAM
字符串變量如何保存在RAM中?
例如: foo = 'abcǶ'
和s = u'abc\ℙ'
。
字符串包含UNICODE字符,應該這樣嗎?在存儲到內存之前如何編碼?
我假設您要問的是標准Python實現CPython。
如PEP 0393中所述,從Python 3.3開始更改了Unicode字符串表示形式。 從那時起,字符串對所有字符(1、2或4)使用相同數量的字節,請根據其內容為每個字符串選擇盡可能小的字節。 使用的特定編碼為:
根據我的理解,在版本3.3之前,Unicode字符串表示取決於系統,通常為UTF-16,UCS-4或UCS-2。 有關更多詳細信息,請參見上述PEP 0393及其參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.