Python Deque
Python Deque
1.Introduction
collections.deque(双端队列)是 Python 提供的一个 高效 的 双端队列,相比 list 在 头部操作(插入/删除) 速度更快,适用于 队列(queue) 和 栈(stack) 场景。
2.Use
2.1 导入
from collections import deque
2.2 创建deque
1
2
3
4
5
6
7
# 创建一个空的 deque
dq = deque()
# 直接用列表初始化 deque
dq = deque([1, 2, 3])
print(dq) # 输出: deque([1, 2, 3])
2.3 添加元素
1
2
3
4
5
dq = deque([1, 2, 3])
dq.append(4) # 在队尾添加
dq.appendleft(0) # 在队首添加
print(dq) # 输出: deque([0, 1, 2, 3, 4])
2.4 删除元素
1
2
3
4
5
dq = deque([1, 2, 3, 4])
print(dq.pop()) # 输出: 4(删除队尾元素)
print(dq.popleft()) # 输出: 1(删除队首元素)
print(dq) # 输出: deque([2, 3])
2.5 添加多个元素
1
2
3
4
5
6
dq = deque([2, 3])
dq.extend([4, 5, 6]) # 添加到队尾
dq.extendleft([1, 0]) # 逆序添加到队首
print(dq) # 输出: deque([0, 1, 2, 3, 4, 5, 6])
2.6 旋转移动
1
2
3
4
5
6
7
dq = deque([1, 2, 3, 4, 5])
dq.rotate(2) # 右移2步
print(dq) # 输出: deque([4, 5, 1, 2, 3])
dq.rotate(-1) # 左移1步
print(dq) # 输出: deque([5, 1, 2, 3, 4])
3.Deque 与 List 对比
操作 deque list 队尾插入 O(1) O(1) 队尾删除 O(1) O(1) 队首插入 O(1) O(n) 队首删除 O(1) O(n) 索引访问 O(n) O(1)
本文由作者按照 CC BY 4.0 进行授权