python 中的 collections 模块:常用数据结构和工具详解

简介: python 中的 collections 模块:常用数据结构和工具详解

Python 的 collections 模块提供了许多有用的数据结构,超越了标准的内置数据类型。这些数据结构解决了各种常见的编程问题,包括但不限于高效的容器类型、特定目的的容器、默认值字典等。让我们深入了解其中的几个重要数据结构和工具。


1. defaultdict:带有默认值的字典


defaultdict 是 dict 的一个子类,它在创建时指定一个默认工厂函数来为字典提供默认值。


示例 1:统计字符出现次数

from collections import defaultdict

text = "apple"
char_count = defaultdict(int)

for char in text:
    char_count[char] += 1
    
print(char_count)
# 输出:defaultdict(<class 'int'>, {'a': 1, 'p': 2, 'l': 1, 'e': 1})


2. Counter:计数器


Counter 是用于计数可哈希对象的子类字典。它可用于快速计数,检查元素出现的次数等。


示例 2:统计列表中元素出现次数

from collections import Counter

numbers = [1, 2, 3, 4, 1, 2, 1, 3, 2]
number_count = Counter(numbers)

print(number_count)
# 输出:Counter({1: 3, 2: 3, 3: 2, 4: 1})


3. deque:双向队列


deque 是一个双向队列,可以在两端高效地进行添加和删除操作。


示例 3:实现队列和栈

from collections import deque

# 队列
queue = deque()
queue.append(1)
queue.append(2)
queue.popleft()  # 输出:1

# 栈
stack = deque()
stack.append(1)
stack.append(2)
stack.pop()  # 输出:2


4. namedtuple:命名元组


namedtuple 创建带有命名字段的元组,可以方便地为元组的字段命名。


示例 4:定义命名元组类型

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)

print(p.x, p.y)  # 输出:1 2


5. ChainMap:链式映射


ChainMap 可以将多个字典或映射连接成一个单独的映射,无需创建新的字典。


示例 5:合并字典并查找值

from collections import ChainMap

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}

chain = ChainMap(dict1, dict2)
print(chain['a'])  # 输出:1
print(chain['c'])  # 输出:3


这些示例展示了 collections 模块中几个重要的数据结构和工具的用法。它们为 Python 程序员提供了更多灵活和高效地处理数据的方式。


目录
相关文章
|
23天前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
2月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
156 92
|
11天前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
52 4
|
11天前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
|
2月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
422 1
|
21天前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
110 0
|
2月前
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
102 0
|
2月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
2月前
|
安全 API 数据安全/隐私保护
|
11月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
318 62

推荐镜像

更多