Collections模块提供高效容器:Counter统计频次,defaultdict自动初始化,OrderedDict保持顺序,deque支持双端操作,提升代码简洁性与性能。

Python 的 Collections 模块提供了比内置数据类型更高级、更灵活的容器类型,能够简化特定场景下的代码逻辑。这些类型在处理计数、默认值、顺序字典等任务时非常实用。
1. Counter:统计元素出现次数
Counter 是一个字典的子类,用于统计可迭代对象中元素的频次。它将元素作为键,出现次数作为值。
常见用法包括:
- 统计字符串中字符出现次数:
Counter("hello")返回{'l': 2, 'h': 1, 'e': 1, 'o': 1} - 获取最常见元素:
counter.most_common(2)返回前两名 - 支持加减操作,合并或相减两个计数器
2. defaultdict:自动初始化默认值
普通字典访问不存在的键会抛出 KeyError。defaultdict 可以指定一个工厂函数,在键不存在时自动生成默认值。
立即学习“Python免费学习笔记(深入)”;
例如:
欢迎使用ChuangxinCMS企业网站管理系统软件! ChuangxinCMS是一个采用PHP技术和MYSQL数据库开发的企业网站管理系统,使用ChuangxinCMS能在最短的时间内花费最少的成本来搭建一个功能完善的企业网站,ChuangxinCMS具有一系列完善的内容管理功能,包括文章发布、分类管理、产品发布展示、下载模块等,整个系统页面设计简洁大方,功能实用高效,是中小型企业建站的最佳选择
- 用
defaultdict(list)构建列表的分组字典,无需判断键是否存在 - 用
defaultdict(int)实现计数功能,类似 Counter - 工厂函数可以是
list、set、int等可调用对象
3. OrderedDict:保持插入顺序的字典
OrderedDict 记录键值对的插入顺序。虽然从 Python 3.7 开始普通字典也保持插入顺序,但 OrderedDict 提供了更明确的语义和额外方法。
特点包括:
-
popitem(last=True)可控制弹出末尾或开头的项 -
move_to_end(key, last=True)移动指定键到开头或末尾 - 适合需要明确依赖插入顺序的逻辑
4. deque:双端队列高效操作
deque(double-ended queue)支持从两端高效地添加和删除元素,时间复杂度为 O(1),而普通列表在头部操作是 O(n)。
常用场景:
- 实现滑动窗口、缓冲区
- 替代 list 做频繁的首尾插入删除
- 支持
append()、appendleft()、pop()、popleft() - 可设置最大长度,超长时自动丢弃旧元素
基本上就这些。合理使用 Collections 模块中的类型,能让代码更简洁、性能更高。









