Python存储字符串时节省空间的方法-创新互联
从 Python 3 开始,str 类型代表着 Unicode 字符串。取决于编码的类型,一个 Unicode 字符可能会占 4 个字节,这个有些时候有点浪费内存。
成都创新互联-专业网站定制、快速模板网站建设、高性价比建宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式建宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖建宁地区。费用合理售后完善,10年实体公司更值得信赖。出于内存占用以及性能方面的考虑,Python 内部采用下面 3 种方式来存储 Unicode 字符:
- 一个字符占一个字节(Latin-1 编码)
- 一个字符占二个字节(UCS-2 编码)
- 一个字符占四个字节(UCS-4 编码)
使用 Python 进行开发的时候,我们会觉得字符串的处理都很类似,很多时候根本不需要注意这些差别。可是,当碰到大量的字符处理的时候,这些细节就要特别注意了。
我们可以做一些小实验来体会下上面三种方式的差别。方法 sys.getsizeof 用来获取一个对象所占用的字节,这里我们会用到。
>>> import sys >>> string = 'hello' >>> sys.getsizeof(string) 54 >>> # 1-byte encoding ... sys.getsizeof(string + '!') - sys.getsizeof(string) 1 >>> # 2-byte encoding ... string2 = '你' >>> sys.getsizeof(string2 + '好') - sys.getsizeof(string2) 2 >>> sys.getsizeof(string2) 76 >>> # 4-byte encoding ... string3 = ':snake:' >>> sys.getsizeof(string3 + ':computer:') - sys.getsizeof(string3) 4 >>> sys.getsizeof(string3) 80
本文题目:Python存储字符串时节省空间的方法-创新互联
标题来源:http://myzitong.com/article/cosgph.html