python队列的四种类型
Queue:先进先出
LifoQueue:后进先出
PriorityQueue:有限队列,级别越低,越优先
deque:双边队列
# 导入 from queue import Queue,LifoQueue,PriorityQueue from collections import deque # Queue:先进先出 # maxsize设置队列中,数据上限,小于或等于0则不限制,容器中大于这个数则阻塞,直到队列中的数据被消掉 q = Queue(maxsize=0) # 写入队列数据 q.put(0) q.put(1) q.put(2) # 查看队列所有数据 print(q.queue) # 删除队列数据,并返回该数据 q.get() >>> q = Queue(maxsize=0) >>> q.put(0) >>> q.put(1) >>> q.put(2) >>> q.queue deque([0, 1, 2]) >>> q.get() 0 >>> q.queue deque([1, 2]) # LifoQueue:后进先出 # 创建队列 q1 = LifoQueue(maxsize=0) # 新增数据 q1.put(0) q1.put(1) q1.put(2) # 查看队列的数据 q1.queue # 删除队列数据 q1.get() >>> q1 = LifoQueue(maxsize=0) >>> >>> q1.put(0) >>> q1.put(1) >>> q1.put(2) >>> >>> q1.queue [0, 1, 2] >>> q1.get() # 后进先出,是从末尾开始删除 2 >>> q1.queue [0, 1] # 创建可以设置优先级的队列,数字越小优先级越高 q2 = PriorityQueue(maxsize=0) # 新增数据 q2.put(9, 'a') q2.put(7, 'c') q2.put(1, 'd') # 查看数据 q2.queue # 删除数据 q2.get() >>> q2 = PriorityQueue(maxsize=0) >>> q2.put(9, 'a') >>> q2.put(7, 'c') >>> q2.put(1, 'd') >>> q2.queue [1, 9, 7] >>> q2.get() 1 >>> q2.queue [7, 9] # 双边队列 # 创建队列 q4 = deque(['a', 'b']) # 增加数据到队尾 q4.append('c') q4+='f' # 增加数据到队首 q4.appendleft('d') # 输出队列所有数据 q4 # 移除队尾,并返回 q4.pop() #移除队首,并返回 q4.popleft() >>> q4 = deque(['a', 'b']) >>> q4.append('c') >>> q4.appendleft('d') >>> q4 deque(['d', 'a', 'b', 'c']) >>> q4.pop() 'c' >>> q4.popleft() 'd' >>> q4 deque(['a', 'b'])