Python中 len() 函数的核心用法与实操示例

顾言
顾言
发布时间:2026-10-12| 3人浏览过
原创

Python 中的 len() 是用于获取对象元素数量的内置函数,以 O(1) 时间复杂度直接读取对象的长度属性。它广泛支持字符串、列表、元组、字典及集合等内置序列与映射类型,同时可被 NumPy 数组和 pandas DataFrame 等第三方数据结构继承。本文将详细解析其运行原理、适用边界,并结合输入校验、循环控制与数据切分等实际编码场景提供标准化代码示例,帮助开发者高效调用并避免类型错误。

len() 函数运行原理与使用限制

len() 是 Python 的核心内置函数,主要用于返回对象包含的项目数量。其底层通过调用对象的 __len__ 魔术方法实现,绝大多数内置类型的长度读取操作时间复杂度为 O(1)。在使用该函数时需注意以下边界:

  • 支持类型:内置序列(str, list, tuple, range)、映射(dict)及集合(set)。
  • 不支持类型:int, float, bool, complex 以及迭代器或生成器对象。对它们调用将直接抛出 TypeError。

内置数据结构的长度计算示例

对于常规内置数据类型,len() 可直接传入参数获取对应容量或元素总数。空容器统一返回 0。

常见开发场景与最佳实践

第1步:基于长度进行用户输入校验

目的:限制用户名等字段的字符范围,防止数据越界。入口为 input() 捕获值,动作是比较 len() 返回值与阈值区间。

username = input('Choose a username: [4-10 characters] ')
if 4 <= len(username) <= 10:
    print(f'Thank you. The username {username} is valid')
else:
    print('The username must be between 4 and 10 characters long')

第2步:利用长度条件控制循环终止

目的:在收集特定数量有效数据时结束 while 循环,替代硬编码计数器。可观察的完成状态为列表长度达到预期上限。

usernames = []
while len(usernames) < 3:
    username = input('Choose a username: [4-10 characters] ')
    if 4 <= len(username) <= 10:
        usernames.append(username)
    else:
        print('Invalid length')
print(usernames)

第3步:索引定位与列表切分

目的:获取最后一项索引或按中点分割列表。虽然 len(nums)-1 可定位末尾,但 Python 推荐使用负索引 -1;分割奇偶长列表时,整除符 // 2 配合切片可精准划分。

第三方库与自定义类的扩展支持

主流数据分析库与自定义对象均可通过重载 __len__ 获得原生兼容性,但语义可能随库的设计而异。

  • NumPy 数组:对二维及以上矩阵,len() 仅返回第一维大小(行数),需搭配 .shape 或 .ndim 获取多维结构信息。
  • pandas DataFrame:返回索引轴长度(即总行数),由基类实现,内部逻辑通常等于 len(self.index)。
  • 自定义类:在类中定义 def __len__(self): return 非负整数,即可让实例成为 len() 合法参数。该方法必须返回整型且不可小于零。

以上就是Python中len()函数核心用法与实操示例的详细内容,更多关于Python基础函数与数据处理技巧的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。