177

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

str = "please answer my question"

我想把它写到一个文件中。

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

4

6 回答 6

289

如果你在谈论字符串的长度,你可以使用len()

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

如果您需要以字节为单位的字符串大小,则需要sys.getsizeof()

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

另外,不要调用您的字符串变量str。它隐藏了内置str()函数。

于 2011-02-11T09:53:38.980 回答
41

蟒蛇 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

蟒蛇2:

Python 2 变得复杂。

A. Python 2 中的len()函数返回分配用于在对象中存储编码字符的字节数。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
于 2016-05-16T20:06:29.930 回答
9
>>> s = 'abcd'
>>> len(s)
4
于 2011-02-11T09:52:51.683 回答
4

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

data['name of column'].str.len() 
于 2018-09-02T03:33:50.987 回答
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
于 2017-03-11T05:04:11.567 回答
1

你想在python语言中找到字符串的长度吗?如果要查找单词的长度,可以使用 len 函数。

string = input("Enter the string : ")

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

输出 : -

输入字符串:病毒

字符串长度为:5

于 2020-10-15T14:34:41.787 回答