Python内置模块collections提供了多种高效且实用的集合类,用于增强标准数据类型的功能。以下是其核心知识点的总结:
1. namedtuple:具名元组2. deque:双向队列3. defaultdict:带默认值的字典- 功能:当键不存在时返回预设默认值,避免KeyError。
- 示例:from collections import defaultdictdd = defaultdict(lambda: 'default')dd['key1'] = 'value'print(dd['key2']) # 输出: 'default'(键不存在时返回默认值)
- 应用场景:统计、分组等需要自动初始化键的场景。
4. OrderedDict:有序字典- 功能:保持键的插入顺序(Python 3.7+中普通字典已默认有序,但OrderedDict提供额外方法如popitem(last=False))。
- 示例:from collections import OrderedDictod = OrderedDict()od['z'] = 1od['y'] = 2print(list(od.keys())) # 输出: ['z', 'y'](按插入顺序)
- 扩展:可实现FIFO(先进先出)逻辑,如限制容量的缓存。
5. ChainMap:多层字典合并- 功能:将多个字典组合为逻辑上的单一视图,按顺序查找键。
- 示例:from collections import ChainMapdefaults = {'color': 'red', 'user': 'guest'}cmd_args = {'user': 'bob'}combined = ChainMap(cmd_args, defaults)print(combined['user']) # 输出: 'bob'(优先从cmd_args查找)
- 用途:处理多来源参数(如命令行、环境变量、默认值)。
6. Counter:计数器- 功能:统计可迭代对象中元素的频率,返回字典子类。
- 示例:from collections import Counters = 'abbcccdddd'print(Counter(s)) # 输出: Counter({'d':4, 'c':3, 'b':2, 'a':1})
- 方法:支持most_common(n)、算术操作(如Counter(a) - Counter(b))。
总结通过合理使用collections模块,可以更高效地处理复杂数据结构需求。