news 2026/4/26 22:21:21

Python queue模块功能大全

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python queue模块功能大全

queue模块简介

queue模块是Python内置的标准模块,模块实现了三种类型的队列,它们的区别仅仅是条目取回的顺序,分别由3个类进行表示,Queue,LifoQueue,PriorityQueue

queue模块是Python内置的标准模块,可以直接通过import queue引用。在Queue模块中提供了三种同步的、线程安全的队列,分别由三个类Queue,LifoQueue和PriorityQueue表示,它们的唯一区别是元素取出的顺序不同。并且LifoQueue和PriorityQueue都是Queue的子类。

1. Queue(FIFO队列)

Queue类表示一个基本的FIFO(First In First Out)队列,即先进先出。创建方法是Queue.Queue(maxsize=0),其中maxsize是个整数,指明了队列中能存放的数据个数的上限。以下是一个使用Queue的示例。

1

2

3

4

5

6

fromqueueimportQueue

queue_object=Queue()

foriinrange(4):

queue_object.put(i)

whilenotqueue_object.empty():

print(queue_object.get())

上例中将4个数字放在了Queue队列中,然后依次取出它的元素值。它的运行结果如下:

0

1

2

3

2. LifoQueue(LIFO队列)

LifoQueue类表示后进先出队列(Last in First Out),与栈类似,都是后进入的元素先出来。创建方法也很简单,使用Queue.LifoQueue(maxsize=0)即可,其中maxsize的含义与Queue类相同。以下是一个使用LifoQueue的示例:

1

2

3

4

5

6

fromqueueimportLifoQueue

lifo_queue=LifoQueue()

foriinrange(4):

lifo_queue.put(i)

whilenotlifo_queue.empty():

print(lifo_queue.get())

上例同样将4个数字放在了LifoQueue中,但取出元素的顺序与Queue相反,最后放入的元素最先被取出。运行结果如下:

3
2
1
0

3. PriorityQueue(优先级队列)

PriorityQueue类表示优先级队列,按级别顺序取出元素,级别最低的最先取出。优先级队列中的元素一般采取元组(优先级别,数据)的形式来存储。创建方法同样是Queue.PriorityQueue(maxsize=0)。以下是一个使用PriorityQueue的示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

fromqueueimportPriorityQueue

classJob(object):

def__init__(self, level, description):

self.level=level

self.description=description

return

def__lt__(self, other):

returnself.level < other.level

priority_queue=PriorityQueue()

priority_queue.put(Job(5,'中级别工作'))

priority_queue.put(Job(10,'低级别工作'))

priority_queue.put(Job(1,'重要工作'))

whilenotpriority_queue.empty():

next_job=priority_queue.get()

print('开始工作:', next_job.description)

在上例中,将任务Job存入PriorityQueue中,每个Job都有一个优先级level,level值越低则代表的优先级越高。在调用get方法时,按照优先级从高到低的顺序从队列中取出元素。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 22:21:18

自然语言驱动GUI测试:AUITestAgent架构解析与工程实践

1. 项目概述与核心价值 在移动应用开发领域&#xff0c;GUI&#xff08;图形用户界面&#xff09;功能测试一直是个既关键又繁琐的环节。传统的自动化测试脚本编写和维护成本高昂&#xff0c;对测试人员的编程能力有较高要求&#xff0c;且脚本往往脆弱&#xff0c;难以应对UI…

作者头像 李华
网站建设 2026/4/26 22:15:57

Kubernetes监控基石:kube-state-metrics核心原理与生产实践指南

1. 项目概述&#xff1a;为什么我们需要一个“集群状态翻译官”&#xff1f;在Kubernetes的日常运维和监控体系中&#xff0c;我们经常听到一个名字&#xff1a;kube-state-metrics。乍一看&#xff0c;它像是kubelet暴露的cAdvisor指标的一个补充&#xff0c;但如果你仅仅把它…

作者头像 李华
网站建设 2026/4/26 22:15:56

Lombok 注解教程

一、Lombok 简介Lombok 是一个 Java 库&#xff0c;通过注解自动生成常见代码&#xff08;getter/setter、构造方法、equals/hashCode 等&#xff09;&#xff0c;减少样板代码。安装&#xff1a;IDE 需安装 Lombok 插件Maven 依赖&#xff1a;<dependency><groupId&g…

作者头像 李华