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

时间:2011-02-11 09:48:17

标签: python string string-length

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

str = "please answer my question"

我想将其写入文件。

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

6 个答案:

答案 0 :(得分:216)

如果您在谈论字符串的长度,可以使用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 :(得分:31)

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变得越来越复杂。*。

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

有时它将等于字符数:

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

但有时,它不会:

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

那是因为str可以在内部使用variable-length encoding。因此,要计算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

P.S。我在32位Windows上的Anaconda Python下测试了我的代码示例

答案 2 :(得分:8)

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

答案 3 :(得分:2)

您还可以使用str.len()计算列中元素的长度

data['name of column'].str.len() 

答案 4 :(得分:1)

Pythonic 方式是使用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

答案 5 :(得分:1)

是否要查找python语言中字符串的长度?如果要查找单词的长度,可以使用len函数。

string = input("Enter the string : ")

print("The string length is : ",len(string))

输出:-

输入字符串:viral

字符串长度是:5