![](/img/trans.png)
[英]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.