Python实现队列的几种方法
- 使用列表(List)实现队列
队列的实现方式之一是使用Python的列表(List),将队列看作是一个列表的末端,插入元素时使用append()方法,弹出元素时使用pop(0)方法。代码如下:
class Queue: def __init__(self): self.items = [] def isEmpty(self): return len(self.items) == 0 def enqueue(self, data): self.items.append(data) def dequeue(self): if not self.isEmpty(): return self.items.pop(0) q = Queue() q.enqueue("pidancode.com") q.enqueue("皮蛋编程") print(q.dequeue()) # 输出 pidancode.com print(q.dequeue()) # 输出 皮蛋编程
- 使用collections.deque双端队列实现队列
Python的collections模块提供了一个名为deque的双端队列,它支持在队列的两端进行插入和删除操作,比使用列表更加高效。代码如下:
from collections import deque class Queue: def __init__(self): self.items = deque() def isEmpty(self): return len(self.items) == 0 def enqueue(self, data): self.items.append(data) def dequeue(self): if not self.isEmpty(): return self.items.popleft() q = Queue() q.enqueue("pidancode.com") q.enqueue("皮蛋编程") print(q.dequeue()) # 输出 pidancode.com print(q.dequeue()) # 输出 皮蛋编程
- 使用queue模块实现队列
Python还提供了标准库中的queue模块来实现队列,包括FIFO队列(先进先出)和LIFO队列(后进先出)等。FIFO队列可通过Queue类来实现。代码如下:
from queue import Queue q = Queue() q.put("pidancode.com") q.put("皮蛋编程") print(q.get()) # 输出 pidancode.com print(q.get()) # 输出 皮蛋编程
- 使用queue.Queue()实现队列
Python标准库中也提供了queue.Queue()类来实现FIFO队列,可以使用put()方法添加元素,使用get()方法弹出元素。代码如下:
import queue q = queue.Queue() q.put("pidancode.com") q.put("皮蛋编程") print(q.get()) # 输出 pidancode.com print(q.get()) # 输出 皮蛋编程
以上就是Python实现队列的几种方法,根据实际情况选择不同的方法即可。
相关文章