len()函数是python中高效获取容器长度的内置方法,直接读取对象内部长度属性,时间复杂度为o(1);支持list、str等实现__len__()的对象,不支持int、none等;常用于长度统计和空值检查。

len() 函数是 Python 中最直接、最高效获取容器长度的内置方法,它不遍历元素,而是直接读取对象内部维护的长度属性,因此无论列表多长、字符串多大,执行速度都几乎是常数时间。
对列表使用 len() 获取元素个数
列表(list)是有序可变序列,len() 返回其中实际存储的元素数量:
- 空列表返回 0,例如 len([]) → 0
- 包含 5 个数字的列表:len([1, 2, 3, 4, 5]) → 5
- 嵌套列表中,只计算外层元素个数,不递归统计,如 len([[1,2], [3], 4]) → 3
对字符串使用 len() 获取字符数
字符串(str)在 Python 中是 Unicode 字符序列,len() 返回的是字符个数,不是字节数:
仅使用 Python 将 Claw Code 虚拟化框架与 OpenClaw 集成,提供 184 种工具和 200 多条命令,用于安全分析和代码质量...
- len("hello") → 5
- len("你好") → 2(每个汉字算一个字符)
- 含空格或标点也计入:len("a b!") → 4
注意:len() 只适用于有 __len__() 方法的对象
不是所有类型都能用 len()。它要求对象实现了 __len__() 魔术方法:
- 支持的常见类型:list、str、tuple、dict、set、bytes、range 等
- 不支持的典型例子:int、float、None、函数对象 —— 调用会报 TypeError
- 自定义类若想支持 len(),需在类中定义 def __len__(self): return ...
小技巧:配合 if 判断做空值检查
比 if my_list != []: 或 if len(my_list) > 0: 更 Pythonic 的写法是直接用布尔上下文:
- if my_list: —— 非空列表为 True(隐式调用 len,但更简洁)
- if not my_string: —— 空字符串为 False
- 需要明确长度数值时,才显式调用 len()
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










