Python中deque
时间: 2023-11-05 09:07:24 浏览: 98
deque(双端队列)是Python标准库collections模块中的一种数据结构,它可以在队列的两端进行添加和删除操作,因此可以用于实现栈和队列。
deque支持的操作包括:
1. append(x):在deque的右端添加元素x。
2. appendleft(x):在deque的左端添加元素x。
3. clear():清空deque。
4. count(x):返回deque中元素x的个数。
5. extend(iterable):在deque的右端添加可迭代对象iterable中的所有元素。
6. extendleft(iterable):在deque的左端添加可迭代对象iterable中的所有元素,注意添加顺序与iterable中的顺序相反。
7. pop():删除并返回deque右端的元素。
8. popleft():删除并返回deque左端的元素。
9. remove(x):删除deque中第一个值为x的元素,如果没有找到则抛出ValueError异常。
10. reverse():将deque中的元素反转。
11. rotate(n=1):将deque中的元素向右移动n步,如果n为负数则向左移动。移动的元素会从deque的一端移动到另一端,因此deque的长度不变。
使用deque需要先导入collections模块:
```
from collections import deque
```
然后可以通过以下方式创建一个deque对象:
```
d = deque()
```
也可以通过传入一个可迭代对象来初始化deque:
```
d = deque([1, 2, 3])
```
使用deque的操作与列表类似,例如:
```
d.append(4)
d.appendleft(0)
d.extend([5, 6])
d.extendleft([-1, -2])
d.pop()
d.popleft()
d.remove(3)
d.reverse()
d.rotate(2)
```
注意,由于deque支持在两端进行添加和删除操作,因此它的时间复杂度比列表更优秀,特别是在涉及到大量添加和删除操作的场景中。
阅读全文