python中deque()
时间: 2025-04-21 07:45:53 浏览: 22
### Python 中 `deque` 的介绍
`deque` 是双端队列 (double-ended queue) 的缩写,在 Python 的 `collections` 模块中提供。这种数据结构允许从两端高效地添加或移除元素[^1]。
```python
from collections import deque
d = deque(['a', 'b', 'c'])
print(d)
```
### 创建与初始化
可以通过传递一个可迭代对象给 `deque()` 来创建一个新的双端队列实例。如果不传入任何参数,则会得到一个空的 `deque` 对象[^2]。
```python
# 使用列表初始化
dq_list = deque([1, 2, 3])
print(dq_list)
# 初始化为空
empty_dq = deque()
print(empty_dq)
```
### 基本操作方法
#### 添加元素
- `append(x)`:在右侧添加新元素。
- `appendleft(x)`:在左侧添加新元素[^3]。
```python
deq = deque()
deq.append('right')
deq.appendleft('left')
print(deq)
```
#### 移除元素
- `pop()`:移除并返回最右边的元素。
- `popleft()`:移除并返回最左边的元素[^4]。
```python
deq_with_items = deque([10, 20, 30])
last_item = deq_with_items.pop() # 返回并删除最后一个元素
first_item = deq_with_items.popleft() # 返回并删除第一个元素
print(f'Last item was {last_item}, first item was {first_item}')
```
### 高级特性
除了基本的操作外,`deque` 还支持一些高级功能:
- **旋转**: 可以通过调用 `rotate(n)` 方法来实现循环右转 n 步;如果 n 为负数则表示左转[^5]。
```python
rotated_deque = deque([1, 2, 3, 4, 5])
rotated_deque.rotate(2) # 向右移动两位
print(rotated_deque)
rotated_deque.rotate(-1) # 向左移动一位
print(rotated_deque)
```
- **最大长度限制**: 当指定 maxlen 参数时,一旦超过该长度,旧的数据项会被自动丢弃[^6]。
```python
limited_deque = deque(maxlen=3)
for i in range(5):
limited_deque.append(i)
print(limited_deque)
```
阅读全文
相关推荐



















