跳转至

Python 大 O 表示法:时间与空间复杂度参考

欢迎阅读这份关于 Python 操作复杂度的完整指南。本资料记录了 Python 内置操作和标准库函数的时间与空间复杂度,以及它们在不同 Python 版本和实现中的行为差异。

适合谁阅读

本参考面向希望写出高效代码、并在数据结构与算法之间做出合理选择的 Python 开发者。对于学习算法与数据结构的计算机专业学生,以及准备技术面试(复杂度分析是常见考点)的工程师,它同样很有价值。

不是 Python 教程,也不是 Big-O 表示法的入门介绍。我们假定你已经熟悉 Python 基础,并对时间与空间复杂度的概念有大致了解。

快速开始

  • 内置类型 - 列表、字典、集合、字符串和元组的复杂度分析
  • 标准库 - collections、heapq、bisect 等模块
  • 实现 - CPython、PyPy、Jython 及其他实现的细节
  • 版本 - 各 Python 版本的变化与优化

为什么这很重要

理解复杂度可以帮助你:

  • 写出高性能的 Python 代码
  • 为你的场景选择合适的数据结构
  • 预判代码在更大输入下的扩展性
  • 有效地优化算法

示例:列表操作

列表操作的复杂度各不相同:

操作 时间复杂度 空间
append() 均摊 O(1) -
insert(0, x) O(n) -
pop() O(1) -
pop(0) O(n) -
in(查找) O(n) -
sort() O(n log n) O(n)

详细分析参见内置类型

如何使用本指南

  1. 搜索 - 使用搜索栏查找特定操作
  2. 浏览 - 按类型或模块导航
  3. 筛选 - 选择 Python 版本或实现
  4. 查看备注 - 阅读与具体实现相关的注意事项

覆盖范围

  • Python 版本:3.10-3.14
  • 实现:CPython、PyPy、Jython、IronPython
  • 操作:2200 多项内置与标准库操作
  • 更新:随 Python 新版本发布定期更新

为什么可以信任本文档?

本文档由多个 AI 编码代理(Amp、Claude、Gemini CLI、Kiro、Copilot、Codex)和模型(Opus 4.5+、Sonnet 4.5、Gemini 3 Pro、gpt-5.2+ 等)与人类贡献者共同审阅和完善。每个代理带来不同的视角、发现不同的问题,从而形成充分的交叉验证。不断扩充的单元测试套件会对照 Python 的实际行为验证这些复杂度结论。

本项目还完全开源——任何人都可以审阅内容、提交问题提出改进。所有来源均已注明,结论基于 Python 官方文档和 CPython 源代码。

参与贡献

发现错误或想补充内容?请查看我们的贡献指南

参考来源


免责声明:尽管我们力求准确,复杂度特性仍可能因具体场景、输入规模和实现细节而不同。对性能关键的代码,请始终通过基准测试验证。