Python collections模块

简介: collections 模块是Python标准库中提供的一个模块,用于提供一些额外的数据容器和工具,扩展了内置的数据类型。它包含了一些有用的类和函数,用于处理各种数据结构和算法问题。下面是 collections 模块中常用的几个类的详细介绍:

collections 模块是Python标准库中提供的一个模块,用于提供一些额外的数据容器和工具,扩展了内置的数据类型。它包含了一些有用的类和函数,用于处理各种数据结构和算法问题。下面是 collections 模块中常用的几个类的详细介绍:

ce042a8894974b129b005c2d76025876.png

1.namedtuple(具名元组):

namedtuple 是一个工厂函数,用于创建具有字段名的元组。它类似于普通的元组,但可以通过字段名进行访问,而不仅仅是通过索引。namedtuple 可以用于创建轻量级的数据对象,比如表示一条记录或数据点。使用 namedtuple 可以提高代码的可读性和易用性。

from collections import namedtuple
# 创建一个具名元组类 Point,包含 x 和 y 两个字段
Point = namedtuple('Point', ['x', 'y'])
# 创建具名元组对象
p = Point(1, 2)
# 访问具名元组中的字段
print(p.x)  # 输出: 1
print(p.y)  # 输出: 2

2.deque(双端队列):

deque 是一个双端队列,支持从两端高效地添加和删除元素。与列表相比,deque 在执行插入和删除操作时具有更好的性能,特别是在大型数据集上。deque 还提供了一些附加的方法,如旋转、扩展和反转等。


from collections import deque
# 创建一个双端队列
dq = deque([1, 2, 3])
# 从右侧添加元素
dq.append(4)
# 从左侧添加元素
dq.appendleft(0)
# 从右侧弹出元素
dq.pop()  # 返回 4
# 从左侧弹出元素
dq.popleft()  # 返回 0
# 旋转队列,将右侧的元素移动到左侧
dq.rotate(1)

3.Counter(计数器):

Counter 是一个简单的计数器类,用于统计可哈希对象的出现次数。它可以接受可迭代对象作为输入,并返回一个字典,其中包含对象作为键,出现次数作为值。Counter 还提供了一些方便的方法,如获取最常见的元素、计算总数等


from collections import Counter
# 创建一个计数器
c = Counter(['a', 'b', 'a', 'c', 'b', 'a'])
# 统计元素的个数
print(c['a'])  # 输出: 3
# 获取最常见的元素和对应的次数
print(c.most_common(2))  # 输出: [('a', 3), ('b', 2)]

4.defaultdict(默认字典):

defaultdict 是一个字典的子类,它在访问不存在的键时返回一个默认值。通过指定默认工厂函数,可以自定义默认值的类型。defaultdict 在处理缺失键时非常有用,可以避免键错误和异常。


from collections import defaultdict
# 创建一个默认字典,指定默认值为 0
d = defaultdict(int)
# 访问不存在的键,默认返回 0
print(d['a'])  # 输出: 0
# 计数器示例
s = 'abracadabra'
counter = defaultdict(int)
for char in s:
    counter[char] += 1

 


相关文章
|
1月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
261 7
|
1月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
210 0
|
1月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
285 4
|
1月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
219 0
|
1月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
163 0
|
2月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
116 4
|
2月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
274 0
|
12月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
364 62
|
3月前
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
314 0
|
4月前
|
数据安全/隐私保护 Python
抖音私信脚本app,协议私信群发工具,抖音python私信模块
这个实现包含三个主要模块:抖音私信核心功能类、辅助工具类和主程序入口。核心功能包括登录

推荐镜像

更多
下一篇
oss云网关配置