2026-10-21 09:05:20
Python的collections模块提供了多种专门的数据结构,用于处理复杂的场景。以下是四个核心容器的详细说明:
1. Counter功能:统计可迭代对象中元素的出现次数,返回字典形式的结果。示例:统计单词中字母的出现次数。
from collections import Counterword = "subbookkeeper"counter = Counter(word)print(counter)输出:
{'s': 1, 'u': 1, 'b': 2, 'o': 2, 'k': 2, 'e': 3, 'p': 1, 'r': 1}特点:
功能:创建带有命名字段的元组子类,兼具元组的不可变性和类的可读性。示例:定义学生信息结构。
from collections import namedtupleStudent = namedtuple('Student', ['fname', 'lname', 'major', 'birthday'])s = Student('Jack', 'Wallen', 'theatre', '10311967')# 通过索引或字段名访问print(s[0]) # 输出: Jackprint(s.major) # 输出: theatre特点:
功能:保留键值对插入顺序的字典,适合需要顺序敏感的场景。示例:维护键值对的插入顺序。
from collections import OrderedDictd = OrderedDict()d['a'] = "Camille"d['b'] = "Colette"d['c'] = "Aaron"d['d'] = "Clara"# 修改值但保持顺序d['c'] = "Jean"for key, value in d.items(): print(key, value)输出:
a Camilleb Colettec Jeand Clara特点:
功能:双端队列,支持高效的两端插入和删除操作。示例:在队列两端添加元素。
from collections import dequequeue = deque(['name', 'age', 'major'])queue.append('minor') # 右侧追加queue.appendleft('Senior') # 左侧追加print(queue)输出:
deque(['Senior', 'name', 'age', 'major', 'minor'])特点:
这些工具在需要优化数据操作时非常有用,尤其在处理大规模或特定逻辑的数据时。