问题:如何在Python中获取字符串的大小?
例如,我得到一个字符串:
str = "please answer my question"
我想将其写入文件。
但是在将字符串写入文件之前,我需要知道字符串的大小。我可以使用什么函数来计算字符串的大小?
回答 0
如果您在谈论字符串的长度,则可以使用len()
:
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
如果需要以字节为单位的字符串大小,则需要sys.getsizeof()
:
>>> import sys
>>> sys.getsizeof(s)
58
另外,不要调用您的字符串变量str
。它遮盖了内置str()
功能。
回答 1
Python 3:
user225312的答案是正确的:
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
Python 2:
对于Python 2,它变得复杂。
答:len()
Python 2中的函数返回分配的字节数,以将编码的字符存储在str
对象中。
有时,它等于字符数:
>>> print(len('abc'))
3
但是有时候,它不会:
>>> print(len('йцы')) # String contains Cyrillic symbols
6
那是因为str
可以在内部使用可变长度编码。因此,要计算字符数,str
您应该知道str
对象正在使用哪种编码。然后,您可以将其转换为unicode
对象并获得字符数:
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B.该sys.getsizeof()
功能与Python 3中的功能相同-它返回分配用于存储整个字符串对象的字节数
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
回答 2
>>> s = 'abcd'
>>> len(s)
4
回答 3
您也可以使用str.len()计算列中元素的长度
data['name of column'].str.len()
回答 4
最Python的方式是使用len()
。请记住,转义序列中的’\’字符不计算在内,如果使用不正确,可能会造成危险。
>>> len('foo')
3
>>> len('\foo')
3
>>> len('\xoo')
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \xXX escape
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。