python3 deque(双向队列)
创建双向队列
import collections
d = collections.deque()
基本用法:
import collections d = collections.deque() d.append(1) d.appendleft(2) d.extend([3,4,5]) d.extendleft([3,4,5]) new_d = d.copy() d.extend(['a','b','c','d','e']) d.rotate(2) #指定次数,默认1次 d.clear() #清空所有
python的queue的实现三种类型的队列。
FIFO先进先出,同数据结构的队列
import queue import time q = queue.Queue() q.put(2) q.put(1) q.put(3) while not q.empty(): next_item = q.get() print(next_item)
LIFO,后进先出。同数据结构的栈
import queue q = queue.LifoQueue() q.put(2) q.put(1) q.put(3) while not q.empty(): next_item = q.get() print(next_item)
PQ优先队列
它一般通过堆这一数据结构,而堆其实是一种完全二叉树,它会对进入容器的元素进行排序(根据事先指定的规则),出队的顺序则会是二叉树的根结点代表的元素。
from queue import PriorityQueue q = PriorityQueue() q.put((2, 'code')) q.put((1, 'eat')) q.put((3, 'sleep')) while not q.empty(): next_item = q.get() print(next_item)