Python队列Queue实现详解

 更新时间:2023年07月27日 10:00:29   作者:小白地瓜  
这篇文章主要介绍了Python队列Queue实现详解,队列是一种列表,队列用于存储按顺序排列的数据,队列是一种先进先出的数据结构,不同的是队列只能在队尾插入元素,在队首删除元素,需要的朋友可以参考下

队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。
队列用于存储按顺序排列的数据,先进先出 队列是一种先进先出(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')]
"""

到此这篇关于Python队列Queue实现详解的文章就介绍到这了,更多相关Python队列Queue内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ubuntu16.04升级Python3.5到Python3.7的方法步骤

    ubuntu16.04升级Python3.5到Python3.7的方法步骤

    这篇文章主要介绍了ubuntu16.04升级Python3.5到Python3.7的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • python二维码操作:对QRCode和MyQR入门详解

    python二维码操作:对QRCode和MyQR入门详解

    今天小编就为大家分享一篇python二维码操作:对QRCode和MyQR入门详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python 使用BeautifulSoup库的方法

    Python 使用BeautifulSoup库的方法

    BeautifulSoup库用于从HTML或XML文件中提取数据,它可以自动将复杂的HTML文档转换为树形结构,并提供简单的方法来搜索文档中的节点,使得我们可以轻松地遍历和修改HTML文档的内容,本文给大家介绍Python 使用BeautifulSoup库的方法,感兴趣的朋友一起看看吧
    2023-10-10
  • python 30行代码实现蚂蚁森林自动偷能量

    python 30行代码实现蚂蚁森林自动偷能量

    这篇文章主要介绍了python 30行代码实现蚂蚁森林自动偷能量的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-02-02
  • Python+Appium实现自动化测试的使用步骤

    Python+Appium实现自动化测试的使用步骤

    这篇文章主要介绍了Python+Appium实现自动化测试的使用步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Flask框架运用Ajax实现数据交互的示例代码

    Flask框架运用Ajax实现数据交互的示例代码

    使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载刷新整个页面,这使得程序能够更快地回应用户的操作,本文将简单介绍使用AJAX如何实现前后端数据通信
    2022-11-11
  • 如何用Django处理gzip数据流

    如何用Django处理gzip数据流

    这篇文章主要介绍了如何用Django处理gzip数据流,帮助大家更好的理解和使用django框架,感兴趣的朋友可以了解下
    2021-01-01
  • PyQt5 实现给无边框widget窗口添加背景图片

    PyQt5 实现给无边框widget窗口添加背景图片

    这篇文章主要介绍了PyQt5 实现给无边框widget窗口添加背景图片的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python selenium webdriver 基本使用代码分享

    Python selenium webdriver 基本使用代码分享

    这篇文章主要介绍了Python selenium webdriver 基本使用,本文仅仅简单介绍了selenium的使用常用代码分享,需要的朋友可以参考下
    2022-11-11
  • python打印当前文件的绝对路径并解决打印为空的问题

    python打印当前文件的绝对路径并解决打印为空的问题

    这篇文章主要介绍了python打印当前文件的绝对路径并解决打印为空的问题,文中补充介绍了python中对文件路径的获取方法,需要的朋友可以参考下
    2023-03-03

最新评论