collections、functools 与数据结构算法
本章基于 Python 3.11+
前置章节:02-标准库基础(math、random、datetime、json、正则等常用模块)
本章深入讲解性能优化、高级数据结构、函数式编程工具等进阶模块,帮助你写出更高效的 Pythonic 代码。
章节导航
| 章节 | 文件 | 核心模块 | 主题 |
|---|---|---|---|
| 01 | 01-数据容器进阶.md | collections | Counter、defaultdict、namedtuple、deque、ChainMap |
| 02 | 02-迭代器与工具函数.md | itertools | 无限迭代器、排列组合、惰性求值 |
| 03 | 03-函数式编程工具.md | functools | lru_cache、partial、wraps、singledispatch |
| 04 | 04-数据结构与算法.md | heapq, bisect | 堆排序、二分查找、优先级队列 |
| 05 | 05-weakref弱引用.md | weakref | 弱引用、缓存、循环引用解决 |
学习重点
1. 为什么学这些?
原生 Python 数据结构(list, dict)虽然强大,但在特定场景下(如频繁查找、复杂计算)效率较低或代码冗长。使用标准库往往能实现 O(1) 复杂度 或 C 语言级 的性能优化。
2. 核心原则
- 不要重复造轮子:能用内置模块解决的,优先使用内置模块。
- 类型安全:配合
typing模块,标准库能提供很好的类型提示支持。 - 性能优先:
itertools和collections底层由 C 实现,效率极高。