怎么通过 Python 的 len() 函数快速获取列表或字符串的长度信息
作者:小确幸
时间:2026-07-09
浏览:0
len()函数不遍历元素,直接读取内部长度属性,时间复杂度为O(1)。支持list、str等实现了__len__()的对象,但对int、None等无效。处理列表时只计算最外层元素个数,字符串则按Unicode字符计数,处理中文方便。配合if可直接判断空值。
len()是 Python 里最常用的内置函数之一,专门用来拿长度。它的厉害之处在于快——不遍历容器里的元素,而是直接读取对象内部维护的长度属性,所以不管列表有一千个还是一万个元素,调用一次len()基本都是常数时间(O(1))。它支持 list、str 这类实现了__len__()方法的对象,但像 int、None 这种就不行。平时写代码,用它做长度统计或空值检查,既方便又规范。

如果要在 Python 里快速知道一个列表或字符串有多长,那 len() 就是最直接的选择。它不像某些语言需要逐个元素计数,而是直接取对象内部存好的长度值,所以效率非常高。不管数据量多大,执行时间几乎一样,这就是常数时间复杂度的好处。
对列表使用 len() 获取元素个数
列表是 Python 里最常用的可变序列,len() 返回的就是里边存了几个元素:
- 空列表会返回 0,比如
len([])得到 0 - 一个有 5 个数字的列表:
len([1, 2, 3, 4, 5])→ 5 - 注意,如果列表里嵌套了子列表,
len()只计算最外层有几个元素,不往深层递归。比如len([[1,2], [3], 4])结果是 3,因为外层就是三个独立元素。
对字符串使用 len() 获取字符数
字符串在 Python 里是 Unicode 字符序列,len() 数的是字符个数,不是字节数,这一点在处理中文时尤其方便:
len("hello")→ 5(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()。比如要判断列表长度是否恰好为 3,还是得显式调用len(my_list) == 3
作者最新文章
Windows 10
2026-09-16 17:44
Python安装后怎么打开:使用IDLE或命令行启动解释器
2026-09-16 13:54
Windows系统Python安装教程:下载、勾选PATH及环境变量配置
2026-09-16 13:53
“等灯不计时”落地解析:算法善意如何转化为技术能力与生态协同
2026-09-08 18:03
英伟达推出NVHBM:定制HBM带宽提升30%并扩展NVLink Fusion生态
2026-09-08 17:31
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
































