Python 官方文档:入门教程 => 点击学习
目录unicode 的三种编码为什么不使用utf-8编码Latin-1、UCS2、UCS4该使用哪一种?小结前言: 在这篇python字符集和字符编码中我们提到了unicode,该字
前言:
在这篇python字符集和字符编码中我们提到了unicode,该字符集对世界上的文字进行了系统的整理,让计算机可以用统一的方式处理文本,而且目前已经支持超过13万个字符,天然地支持多国语言。
所以不管什么文字,都可以用一个unicode来表示。
但是问题来了,unicode能表示这么多的字符,那么占用的内存一定不低吧。的确,根据当时的编码,一个unicode字符最高会占用到4字节。但是对于西方人来说,明明一个字符就够用了,为啥需要那么多。
于是又出现了utf-8,它是为unicode提供的一个新的编码规则,具有可变长的功能。不同种类的字符占用的大小不同,比如英文字符使用一个字节存储,汉字使用3个字节存储,Emoji 使用4个字节存储。
但Python在表示unicode字符串时,使用的却不是utf-8编码,至于原因我们下面来分析一下。
从python3开始,字符串使用的是Unicode。而根据编码的不同,Unicode的每个字符最大可以占到4字节,从内存的角度来说, 这种编码有时会比较昂贵。
为了减少内存消耗并且提高性能,Python的内部使用了三种编码方式来表示Unicode:
在Python编程中,所有字符串的行为都是一致的,而且大多数时间我们都没有注意到差异。然而在处理大文本的时候,这种差异就会变得异常显著、甚至有些让人出乎意料。
为了看到内部表示的差异,我们使用sys.getsizeof函数,查看一个对象所占的字节数。
import sys
print(sys.getsizeof("a")) # 50
print(sys.getsizeof("憨")) # 76
print(sys.getsizeof("
--结束END--
本文标题: 在Python中存储字符串
本文链接: https://lsjlt.com/news/117915.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0