发布于2026-07-09 阅读(0)
扫一扫,手机访问
len()是 Python 里最常用的内置函数之一,专门用来拿长度。它的厉害之处在于快——不遍历容器里的元素,而是直接读取对象内部维护的长度属性,所以不管列表有一千个还是一万个元素,调用一次len()基本都是常数时间(O(1))。它支持 list、str 这类实现了__len__()方法的对象,但像 int、None 这种就不行。平时写代码,用它做长度统计或空值检查,既方便又规范。

如果要在 Python 里快速知道一个列表或字符串有多长,那 len() 就是最直接的选择。它不像某些语言需要逐个元素计数,而是直接取对象内部存好的长度值,所以效率非常高。不管数据量多大,执行时间几乎一样,这就是常数时间复杂度的好处。
列表是 Python 里最常用的可变序列,len() 返回的就是里边存了几个元素:
len([]) 得到 0len([1, 2, 3, 4, 5]) → 5len() 只计算最外层有几个元素,不往深层递归。比如 len([[1,2], [3], 4]) 结果是 3,因为外层就是三个独立元素。字符串在 Python 里是 Unicode 字符序列,len() 数的是字符个数,不是字节数,这一点在处理中文时尤其方便:
len("hello") → 5(5个英文字符)len("你好") → 2(每个汉字算一个字符,不用担心中文编码问题)len("a b!") → 4(三个字符加一个空格)不是所有类型都能用 len()。它要求对象实现了 __len__() 这个魔术方法——你可以理解为对象自己得知道怎么告诉别人它的长度。常见支持的类型有:
TypeErrorlen(),那就在类里加上 def __len__(self): return ... 就行很多初学者会写 if my_list != []: 或者 if len(my_list) > 0:,其实有更 Pythonic 的做法——利用布尔上下文直接判断:
if my_list: —— 非空列表自动为 True(内部隐式调用了 len(),但代码更简洁)if not my_string: —— 空字符串自动为 Falselen()。比如要判断列表长度是否恰好为 3,还是得显式调用 len(my_list) == 3
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8