队列是计算机科学中非常重要的数据结构之一,它是一种先进先出(FIFO)的数据结构。Python3提供了队列模块queue,可以方便地操作队列。
队列模块有两种主要的队列实现:先进先出队列(Queue)和优先级队列(PriorityQueue)。
使用队列模块时,需要先导入模块:
import queue
先进先出队列(Queue)是最普遍的队列实现。使用Queue实现队列时,需要创建Queue对象。例如,下面的代码片段创建一个新的队列:
q = queue.Queue()
然后可以使用以下方法来操作队列:
- put(item, block=True, timeout=None): 将一个元素添加到队列中
- get(block=True, timeout=None): 从队列中删除并返回最早添加的元素
- empty(): 如果队列为空则返回True,否则返回False
- qsize(): 返回队列中元素的个数
例如,下面的代码片段创建一个新的队列,将三个元素添加到队列中,然后从队列中删除并打印这些元素:
q = queue.Queue() q.put(1) q.put(2) q.put(3) while not q.empty(): print(q.get())
优先级队列(PriorityQueue)是一个封装了一个堆的先进先出队列,堆中元素的顺序由其优先级(数字)决定。使用PriorityQueue实现队列时,需要创建PriorityQueue对象。例如,下面的代码片段创建一个新的优先级队列:
q = queue.PriorityQueue()
优先级队列的方法与先进先出队列相同,不过元素的添加和删除需要指定优先级。例如,下面的代码片段创建一个新的优先级队列,将三个元素添加到队列中,然后从队列中删除并打印这些元素:
q = queue.PriorityQueue() q.put((1, "a")) q.put((3, "c")) q.put((2, "b")) while not q.empty(): print(q.get()[1])
上一篇 jquery 修改 标签 属性
下一篇 python3 随机矩阵