队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出
队列是一种先进先出(First-In-First-Out,FIFO)的数据结构。队列被用在很多地方,比如提交操作系统执行的一系列进程、打印任务池等
实现方式
一:自定义队列类
class Queue:
def __init__(self):
self.items = []
def push(self, value): # 进队列
self.items.append(value)
def pop(self): # 出队列
return self.items.pop(0)
if __name__ == '__main__':
q = Queue()
q.push(1)
q.push(2)
q.push(3)
print(q.pop())
print(q.pop())
print(q.pop())
二:使用python内置队列库
from queue import Queue # LILO队列
q = Queue() # 创建队列对象
q.put(1) # 在队列尾部插入元素
q.put(2)
q.put(3)
print('队列内元素', q.queue) # 查看队列中的所有元素
print(q.get()) # 返回并删除队列头部元素
print('队列内元素', q.queue) # 查看队列中的所有元素
"""输出
队列内元素 deque([1, 2, 3])
1
队列内元素 deque([2, 3])
"""
优先队列
from queue import PriorityQueue
# 存储数据时可设置优先级的队列
# 优先级设置数越小等级越高
q = PriorityQueue(maxsize=0)
# 写入队列,设置优先级
q.put((9, 'a'))
q.put((7, 'c'))
q.put((1, 'd'))
# 输出队例全部数据
print(q.queue)
# 取队例数据,可以看到,是按优先级取的。
q.get()
print(q.queue)
"""输出
[(1, 'd'), (9, 'a'), (7, 'c')]
[(7, 'c'), (9, 'a')]
"""