Python的常用模块之collections模块详解
1. collections模块简介
Python的collections模块是一个非常有用的模块,在处理数据集合时提供了一些有用的类,比如:OrderedDict、defaultdict、Counter等等。这些类是Python内置类型的扩展,并且还提供了一些高效和有用的方法,方便我们进行一些常用的操作,如:查找、统计、排序等。
2. OrderedDict类
在Python中,字典是无序的,如果我们需要保持其顺序,那么我们需要使用OrderedDict类。OrderedDict内部维护了一个双向列表(linked-list),因此添加的顺序决定了元素的顺序。
2.1. OrderedDict类的创建
创建一个空的有序字典的方法
from collections import OrderedDict
d = OrderedDict()
创建一个有序字典,并初始化
from collections import OrderedDict
d = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
2.2. OrderedDict的基本方法
2.2.1. 按照插入顺序遍历
for key, value in d.items():
print(key, value)
2.2.2. 弹出并返回最后一个键值对
d.popitem()
2.2.3. 移动一个元素到队尾
d.move_to_end(key)
3. defaultdict类
defaultdict可以让我们在使用一个不存在的键时自动初始化一个值。这样,在我们需要选择性的增加某些值时,代码更加简洁清晰。
3.1. defaultdict类的创建
from collections import defaultdict
d = defaultdict(int)
这样,当我们访问一个不存在的键时,它会自动创建并使用int()函数初始化键值对值。
还可以通过lambda表达式的形式初始化字典的值,例如:
d = defaultdict(lambda: [])
这样,当我们访问一个不存在的键时,它会自动创建并使用[]列表初始化键值对值。
3.2. defaultdict的基本方法
3.2.1. 根据键值删除字典中的项
del d['a']
3.2.2. 将键值对添加到字典中
d['a'] = 1
3.2.3. 查看某个键对应的值
print(d['a'])
4. Counter类
Counter可以用来统计序列或者列表中元素的出现频率,返回的结果是一个字典。
4.1. Counter类的创建
from collections import Counter
c = Counter('hello world')
这样,c字典中保存了’hello world’中每个字符出现的次数。
4.2. Counter的基本方法
4.2.1. 打印出出现频率前n的键值对
print(c.most_common(n))
4.2.2. 清除Counter
c.clear()
5. 总结
以上就是collections模块的详细介绍,可以看出,该模块提供了很多方便的操作,非常适合在数据集合中使用。我们应该根据实际需求选取所需的类库来使用。