教教我python的collections库
时间: 2023-09-16 22:07:57 浏览: 84
Python 的 `collections` 库是一个很有用的工具,它提供了一些常用的容器类型,这些容器类型是 Python 内置数据类型的扩展,可以方便地处理各种数据,并提高了代码的可读性和效率。
下面我们来介绍一下 `collections` 库中几个常用的容器类型:
1. `namedtuple`
`namedtuple` 可以看作是一个带有命名字段的元组,它的每个字段都有一个名称,可以通过名称来访问。使用 `namedtuple` 可以避免因为下标错误引起的错误,提高代码可读性。
```python
from collections import namedtuple
# 定义一个 Point 类型
Point = namedtuple('Point', ['x', 'y'])
# 创建一个 Point 对象
p = Point(1, 2)
# 访问 Point 对象的字段
print(p.x, p.y) # 输出:1 2
```
2. `Counter`
`Counter` 是一个计数器,它可以统计每个元素出现的次数,并以字典的形式返回。
```python
from collections import Counter
# 统计一个字符串中每个字符出现的次数
s = "hello, world!"
counter = Counter(s)
print(counter) # 输出:Counter({'l': 3, 'o': 2, 'e': 1, 'h': 1, ',': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1})
```
3. `deque`
`deque` 是一个双端队列,可以在两端进行插入和删除操作,比列表在左端插入和删除的效率更高。
```python
from collections import deque
# 创建一个 deque 对象
d = deque([1, 2, 3])
# 在左端插入一个元素
d.appendleft(0)
# 在右端插入一个元素
d.append(4)
# 删除左端的元素
d.popleft()
# 删除右端的元素
d.pop()
print(d) # 输出:deque([0, 1, 2, 3])
```
除了以上这些常用的容器类型外,`collections` 还提供了其他的容器类型,如 `defaultdict`、`OrderedDict` 等,这些容器类型可以在不同的场景中使用,可以根据实际需求进行选择。
阅读全文