python—队列(Queue)

本文介绍了Python中的队列数据结构,强调了其先进先出(FIFO)特性,并详细说明了队列的主要操作,如is_empty(), enqueue(), dequeue(), peek()以及print_queue()。此外,还详细讨论了multiprocessing.Queue的创建、put()和get()方法的使用,以及如何检查队列是否满或空。通过示例代码展示了队列的实战应用。" 107529070,9891209,Odoo连接外部MySQL数据库实战,"['数据库', 'Python', 'Odoo']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

队列的基本知识:

队列为:先进先出[FIFO]

队列 (queue) 是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,

和栈一样,队列是一种操作受限制的线性表。

进行插入操作的端称为队尾,进行删除操作的端称为队头。

在这里插入图片描述

队列数据结构包含的功能有:

队列是否为空 is_empty()

往队尾添加一个元素 enqueue(elem)

将队头的元素删除,并返回这个元素的值 dequeue

查看队头 peek()打印队列 print_queue()

queue队列

  1. 创建 queue队列对象
    q = multiprocessing.Queue(3) # 3表示只能存放3个数据
    参数 :maxsize是队列中允许的大项数。如果省略此参数,则无大小限制。
    返回值q 是队列对象
  2. put()方法 ,向队列中存放数据。如果队列已满,此方法将阻塞至有空间可用为止。
  3. get()返回q中的一个项目。如果q为空,此方法将阻塞,直到队列中有项目可用为止。
  4. get_nowait(): 不等待,直接抛出异常
  5. full()如果q已满,返回为True
  6. q.empty() 如果调用此方法时 q为空,返回True。

代码实现:

from multiprocessing import Queue
import multiprocessing
#1.创建一个队列对象
q=multiprocessing.Queue(3)
#参数maxsize是队列中允许最大项数,如果忽略此参数,则无大小限制
#2.put方法,向队列里放数据
q.put("hello")
q.put(123)
q.put([1,2,3])
# q.get()
# q.put("python")
#get方法,获取数据
# print(q.get_nowait())
print(q.get())
print(q.get())
print(q.get())
# print(q.get())
# print("---------------------")


#3.qsize(),获取队列长度(队列中的数据数量)
print("队列中有多少数据",q.qsize())

#4.full()判断队列中是否存满了
print(q.full())

#5.empty()判断队列中的数据是否空了,True表示空了
print(q.empty())

运行结果:

hello
123
[1, 2, 3]
队列中有多少数据 0
False
True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值