Python实现队列的几种方法

2023-04-11 00:00:00 python 队列 几种方法
  1. 使用列表(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())  # 输出 皮蛋编程
  1. 使用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())  # 输出 皮蛋编程
  1. 使用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())  # 输出 皮蛋编程
  1. 使用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实现队列的几种方法,根据实际情况选择不同的方法即可。

相关文章