Python数据结构学习笔记(三)

Python在存储字符串的时候如何节省内存
 
  • Latin-1 编码:每个字符一个字节
  • UCS2编码:每个字符两字节
  • UCS4编码:每个字符四字节
 
 
采用不同编码,那么底层结构体实例额外的部分也会占用不同大小的内存。
  • Latin-1编码:49个字节
  • UCS2编码:74个字节
  • UCS4编码:76个字节
 
字符串所占字节数=额外的部分 + 字符个数 * 单个字符所占的字节。
 
 
python为什么不用utf-8存储字符串
当一个字符串使用utf-8编码存储时,根据它所表示的字符,每个字符根据自身选择一个合适的编码。(所以每个字符的字节长度可能不同,就无法按照索引瞬间定位)
 
python在创建字符串的时候,会先扫描。(看用哪个编码存储)
 
而字符串得所有字符只能有一个编码,为了保证索引查找的时候,时间复杂度为O(1),这是python的设计策略。(python的索引是基于字符)
原文地址:https://www.cnblogs.com/jinggs/p/14518993.html