python中collections库用法详解
时间: 2023-12-09 15:04:42 浏览: 257
Python collections模块使用方法详解
collections是Python内置库中的一个模块,它提供了一些有用的类,用于处理Python中的集合类型。这些类包括:Counter、defaultdict、deque、namedtuple等。
1. Counter类
Counter类是一个用于计数的容器,它可以统计元素出现的次数。可以使用它来创建一个字典,其中字典的键是元素,值是元素的数量。Counter类的用法如下:
```python
from collections import Counter
# 创建一个Counter对象
c = Counter(['a', 'b', 'c', 'a', 'b', 'a'])
# 统计元素出现的次数
print(c) # Counter({'a': 3, 'b': 2, 'c': 1})
# 统计前n个出现次数最多的元素
print(c.most_common(2)) # [('a', 3), ('b', 2)]
```
2. defaultdict类
defaultdict类是一个字典类型,它可以自动为不存在的键分配一个默认值。当使用一个不存在的键时,它会自动创建一个默认值,并返回它。defaultdict类的用法如下:
```python
from collections import defaultdict
# 创建一个defaultdict对象
d = defaultdict(int)
# 添加键值对
d['a'] = 1
d['b'] = 2
# 访问不存在的键
print(d['c']) # 0
```
3. deque类
deque类是一个双向队列,它可以在队列的两端进行插入和删除操作。deque类的用法如下:
```python
from collections import deque
# 创建一个deque对象
d = deque()
# 在队列的左边插入元素
d.appendleft(1)
d.appendleft(2)
# 在队列的右边插入元素
d.append(3)
d.append(4)
# 访问队列中的元素
print(d) # deque([2, 1, 3, 4])
# 从队列的左边删除元素
print(d.popleft()) # 2
# 从队列的右边删除元素
print(d.pop()) # 4
```
4. namedtuple类
namedtuple类是一个工厂函数,它可以用来创建一个具有字段名的元组。该类返回的是一个元组子类,它可以像普通元组一样访问元素,但也可以使用字段名来访问元素。namedtuple类的用法如下:
```python
from collections import namedtuple
# 定义一个namedtuple类型
Point = namedtuple('Point', ['x', 'y'])
# 创建一个Point对象
p = Point(1, 2)
# 访问元素
print(p.x) # 1
print(p.y) # 2
```
阅读全文