Collections模块提供高效容器:Counter统计频次,defaultdict自动初始化,OrderedDict保持顺序,deque支持双端操作,提升代码简洁性与性能。
Python 的 Collections 模块提供了比内置数据类型更高级、更灵活的容器类型,能够简化特定场景下的代码逻辑。这些类型在处理计数、默认值、顺序字典等任务时非常实用。
Counter 是一个字典的子类,用于统计可迭代对象中元素的频次
。它将元素作为键,出现次数作为值。
常见用法包括:
Counter("hello") 返回 {'l': 2, 'h': 1, 'e': 1, 'o': 1}
counter.most_common(2) 返回前两名普通字典访问不存在的键会抛出 KeyError。defaultdict 可以指定一个工厂函数,在键不存在时自动生成默认值。
例如:
defaultdict(list) 构建列表的分组字典,无需判断键是否存在defaultdict(int) 实现计数功能,类似 Counterlist、set、int 等可调用对象OrderedDict 记录键值对的插入顺序。虽然从 Python 3.7 开始普通字典也保持插入顺序,但 OrderedDict 提供了更明确的语义和额外方法。
特点包括:
popitem(last=True) 可控制弹出末尾或开头的项move_to_end(key, last=True) 移动指定键到开头或末尾deque(double-ended queue)支持从两端高效地添加和删除元素,时间复杂度为 O(1),而普通列表在头部操作是 O(n)。
常用场景:
append()、appendleft()、pop()、popleft()
基本上就这些。合理使用 Collections 模块中的类型,能让代码更简洁、性能更高。