2024-04-20 02:13:12 发布
网友
例如,我得到一个字符串:
str = "please answer my question"
我想把它写进一个文件里。
但在将字符串写入文件之前,我需要知道字符串的大小。我可以用什么函数来计算字符串的大小?
user225312's answer是正确的:
A.要计算str对象中的字符数,可以使用len()函数:
str
len()
>>> print(len('please anwser my question')) 25
B.要获取分配给存储str对象的字节内存大小,可以使用sys.getsizeof()函数
sys.getsizeof()
>>> from sys import getsizeof >>> print(getsizeof('please anwser my question')) 50
对于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
Python3:
user225312's answer是正确的:
A.要计算
str
对象中的字符数,可以使用len()
函数:B.要获取分配给存储
str
对象的字节内存大小,可以使用sys.getsizeof()
函数Python2:
对于Python 2来说,这变得很复杂。
A.Python 2中的
len()
函数返回分配给在str
对象中存储编码字符的字节数。有时它等于字符数:
但有时,它不会:
这是因为} 对象并获取字符计数:
str
可以在内部使用variable-length encoding。因此,要计算str
中的字符数,您应该知道您的str
对象正在使用哪个编码。然后可以将其转换为^{B.函数
sys.getsizeof()
的作用与Python 3中的相同-它返回分配给存储整个字符串对象的字节数如果您正在讨论字符串的长度,可以使用^{} :
如果需要字符串的字节大小,则需要^{} :
另外,不要调用字符串变量} 函数。
str
。它隐藏了内置的^{相关问题 更多 >
编程相关推荐