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月前
|
Python 容器
Python collections模块之Counter()详解
Python collections模块之Counter()详解
24 3
|
7月前
|
Python
|
7月前
|
Python
python 的collections模块详解
想让自己的python代码更加Pythonic吗,我就来带大家研究研究collections模块 在流程的python这本书中,有一点点的叙述,但是想更加深入的去了解,那就得自己查资料了,我也顺便把自己整理的分享出来.
|
存储 索引 Python
浅析 Python 中的 Collections 模块
本文将简单介绍一个 Python 模块 Collections 。这个模块实现了一些很好用的数据结构,可以帮助我们解决不同的实际问题。
|
存储 安全 Python
【Python基础篇014】第贰章模块大全之《collections模块》
【Python基础篇014】第贰章模块大全之《collections模块》
309 0
【Python基础篇014】第贰章模块大全之《collections模块》
|
Java Python
python Queue组件使用 | Python工具类
python Queue组件使用 | Python工具类
python Queue组件使用 | Python工具类
|
存储 自然语言处理 算法
每周一个 Python 模块 | collections
Python 作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块。比如今天想给大家 介绍的 collections 就是一个非常好的例子。
121 0
|
数据采集 安全 Java
每周一个 Python 模块 | threading
其实在 Python 中,多线程是不推荐使用的,除非明确不支持使用多进程的场景,否则的话,能用多进程就用多进程吧。写这篇文章的目的,可以对比多进程的文章来看,有很多相通的地方,看完也许会对并发编程有更好的理解。
141 0
|
安全 API 数据库
每周一个 Python 模块 | contextlib
用于创建和使用上下文管理器的实用程序。 contextlib 模块包含用于处理上下文管理器和 with 语句的实用程序。
133 0