如何在Python中获得字符串的大小?

2024-04-20 02:13:12 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我得到一个字符串:

str = "please answer my question"

我想把它写进一个文件里。

但在将字符串写入文件之前,我需要知道字符串的大小。我可以用什么函数来计算字符串的大小?


Tags: 文件函数字符串answermyquestionpleasestr
3条回答

Python3:

user225312's answer是正确的:

A.要计算str对象中的字符数,可以使用len()函数:

>>> print(len('please anwser my question'))
25

B.要获取分配给存储str对象的字节内存大小,可以使用sys.getsizeof()函数

>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50

Python2:

对于Python 2来说,这变得很复杂。

A.Python 2中的len()函数返回分配给在str对象中存储编码字符的字节数。

有时它等于字符数:

>>> print(len('abc'))
3

但有时,它不会:

>>> print(len('йцы'))  # String contains Cyrillic symbols
6

这是因为str可以在内部使用variable-length encoding。因此,要计算str中的字符数,您应该知道您的str对象正在使用哪个编码。然后可以将其转换为^{}对象并获取字符计数:

>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols 
3

B.函数sys.getsizeof()的作用与Python 3中的相同-它返回分配给存储整个字符串对象的字节数

>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32

如果您正在讨论字符串的长度,可以使用^{}

>>> s = 'please answer my question'
>>> len(s)  # number of characters in s
25

如果需要字符串的字节大小,则需要^{}

>>> import sys
>>> sys.getsizeof(s)
58

另外,不要调用字符串变量str。它隐藏了内置的^{}函数。

>>> s = 'abcd'
>>> len(s)
4

相关问题 更多 >