【重要】获取字符串长度的几个函数
在 Python 中,获取字符串长度的主要方法是使用内置的 len()
函数。以下是详细说明和示例:
1. len()
函数
- 最常用的方法,直接返回字符串的字符个数(包括空格和特殊字符)。
- 时间复杂度:O(1),因为字符串在 Python 中会存储其长度。
s = "Hello, 世界"
print(len(s)) # 输出: 8(注意:中文字符也算1个长度)
2. 其他相关方法(非直接获取长度)
str.__len__()
:len()
底层调用的方法,但通常不直接使用。print("Hello".__len__()) # 输出: 5(不推荐直接调用)
- 编码相关(如需字节长度):
str.encode()
+len()
:获取字符串的字节长度(需指定编码,如 UTF-8)。s = "世界" print(len(s.encode('utf-8'))) # 输出: 6(每个中文字符占3字节)
3. 注意事项
- Unicode 字符:
len()
返回的是 Unicode 字符数,而非字节数。例如,"世界"
的长度是 2。 - 特殊字符:如换行符
\n
或制表符\t
各算 1 个长度。
示例对比
s = "Python\n编程"
print(len(s)) # 输出: 8(6个字母 + \n + 2个中文字符)
print(len(s.encode())) # 输出: 12(UTF-8编码下,中文字符各占3字节)
总结
- 标准用法:始终使用
len(str)
。 - 字节长度:结合
encode()
和len()
。 - 避免直接调用
__len__()
,除非有特殊需求。
如果有其他边缘需求(如统计非空格字符等),可能需要结合循环或正则表达式实现。