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

Python的Collection()类详解

发布时间:2024-01-09 08:20:48

Collection 是 Python 标准库中的一个模块,用于处理可迭代对象(iterable)的集合操作。

在 Collection 模块中定义了多个类,包括 Counter、defaultdict、OrderedDict、deque 等。这些类都是对 Python 原生的数据结构进行了功能扩展,使其更加易用和高效。

下面简要介绍 Collection 中的几个常用类:

1. Counter

Counter 类是一个简单的计数器,用于统计可迭代对象中各元素的数量。可以用于任何可哈希的元素。

使用 Counter 类的示例代码如下:

from collections import Counter

cnt = Counter()
words = ['apple', 'orange', 'banana', 'apple']
for word in words:
    cnt[word] += 1

print(cnt)
# 输出 Counter({'apple': 2, 'orange': 1, 'banana': 1})

2. defaultdict

defaultdict 类是一个字典,它的特点是当访问一个不存在的键时,会返回一个给定类型的默认值。这在处理字典中不存在的键时非常方便。

使用 defaultdict 类的示例代码如下:

from collections import defaultdict

d = defaultdict(int)
words = ['apple', 'orange', 'banana', 'apple']
for word in words:
    d[word] += 1

print(d)
# 输出 defaultdict(<class 'int'>, {'apple': 2, 'orange': 1, 'banana': 1})

3. OrderedDict

OrderedDict 类是一个有序字典,它记录了元素的插入顺序,可以按照插入顺序遍历字典的键。

使用 OrderedDict 类的示例代码如下:

from collections import OrderedDict

d = OrderedDict()
d['a'] = 1
d['b'] = 2
d['c'] = 3

print(d)
# 输出 OrderedDict([('a', 1), ('b', 2), ('c', 3)])

for key in d:
    print(key, d[key])
# 输出 a 1
#     b 2
#     c 3

4. deque

deque 类是一个双向队列,可用于高效实现队列、栈和双向队列等数据结构。

使用 deque 类的示例代码如下:

from collections import deque

q = deque()
q.append(1)
q.append(2)
q.append(3)

print(q)
# 输出 deque([1, 2, 3])

print(q.popleft())
# 输出 1

print(q)
# 输出 deque([2, 3])

除了上述几个类,Collection 还提供了 namedtuple、ChainMap 等功能丰富的类,可进一步扩展 Python 的数据结构能力。

总结一下,Collection 模块为 Python 提供了处理可迭代对象的集合操作类,使得对集合的处理更加高效和方便。在实际编程中,根据具体需求选择合适的类来处理数据,能够提高代码的可读性和性能。