欢迎访问宙启技术站
智能推送

Python中的collections模块常用函数及用法解析

发布时间:2023-07-03 05:41:03

Python的collections模块是Python标准库中的一个模块,提供了一些用于操作集合数据类型的工具和容器,比如字典、列表、元组和集合。这些工具和容器可以更方便地处理这些数据类型,提高程序的效率和可读性。

这里我将介绍一些collections模块常用的函数和用法。

1. Counter

Counter是一个用于计数的工具,它可以接受一个可迭代对象作为输入,并将元素及其出现的次数作为字典返回。

from collections import Counter

# 统计列表中元素的个数
lst = [1, 2, 2, 3, 3, 3]
c = Counter(lst)
print(c)  # 输出: Counter({3: 3, 2: 2, 1: 1})

# 统计字符串中字符的个数
s = "hello, world!"
c = Counter(s)
print(c)  # 输出: Counter({'l': 3, 'o': 2, 'e': 1, 'h': 1, ',': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1})

2. defaultdict

defaultdict是一个默认字典,它可以设置字典的默认值,如果访问一个不存在的键时,会返回该默认值。

from collections import defaultdict

# 创建一个默认值为0的字典
d = defaultdict(int)
print(d['key'])  # 输出: 0

# 创建一个默认值为[]的字典
d = defaultdict(list)
print(d['key'])  # 输出: []

3. deque

deque是一个双边队列,可以从两端高效地进行插入和删除操作。

from collections import deque

# 创建一个双边队列
dq = deque()
dq.append(1)  # 从末尾插入元素
dq.appendleft(2)  # 从头部插入元素
print(dq)  # 输出: deque([2, 1])

x = dq.pop()  # 从末尾删除元素
y = dq.popleft()  # 从头部删除元素
print(x, y)  # 输出: 1, 2

4. namedtuple

namedtuple是一个创建带名称的元组的工具,可以创建一个具有可命名字段的元组子类,并且可以通过字段名称访问元组的元素。

from collections import namedtuple

# 创建一个具有两个字段的命名元组
Person = namedtuple('Person', ['name', 'age'])

# 创建一个命名元组实例
p = Person('Alice', 25)
print(p.name, p.age)  # 输出: Alice, 25

以上是collections模块常用的几个函数和用法,还有其他函数和用法可以参考官方文档。通过使用这些工具和容器,我们可以更加方便地处理集合数据类型,提高程序的效率和可读性。