如何在Python 3中复制Python 2样式的len()?

Ian*_*zie 6 python python-3.x

我希望len()在Python 3中复制Python 2样式,因为它与unicode字符串有关。

在Python 2中len(),unicode字符串的大小是其磁盘上的字节大小。例如:len("??")返回6。在Python 3中,len()返回字符串中的字符数,该示例返回2

sys.getsizeof() 并不是解决方案,因为这会获取Python对象在内存中的大小,而不是对象在写入磁盘后的大小。

Pra*_*mar 6

您可以将其编码为utf8如下所示。

>>> len('??'.encode('utf8'))
6
>>>
Run Code Online (Sandbox Code Playgroud)

  • .encode()也可以使用,因为默认为UTF-8。https://docs.python.org/3/library/stdtypes.html#str.encode (3认同)