python 队列

队列常用方法

Python中的队列是一种数据结构,遵循先进先出(FIFO)的原则。在Python中,你可以使用内置模块queue提供的Queue类来实现队列数据结构。队列是一种常见的数据结构,用于按照特定顺序处理数据项,例如任务调度、数据缓冲、事件处理等。

  1. qsize():返回队列的大小。
  2. empty():如果队列为空,返回True,反之False。
  3. full():如果队列满了,返回True,反之False。Queue.full与maxsize大小对应。
  4. get([block[, timeout]]):获取队列,timeout等待时间。
  5. put(item):[block[, timeout]]:写入队列,timeout等待时间。
  6. task_done():在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号。每个get()调用得到一个任务,接下来task_done()调用告诉队列该任务已经处理完毕。
  7. join():线程阻塞,直到队列中的所有任务处理完毕。

先进先出队列

import queue

q=queue.Queue(5) #如果不设置,默认无限长
print('队列长度',q.maxsize)

q.put(1,block=True,timeout=1)  #block=True表示写入操作是阻塞的,阻塞时间有timeout决定。
#当队列写满的时候,队列会被阻塞,直到其他线程取走数据。block=Flase 非阻塞的
print('队列真实长度',q.qsize())
print(q.get())
#取数据默认是阻塞的
print('队列真实长度',q.qsize())

 

后进先出队列

import queue

q = queue.LifoQueue()
q.put(12)
q.put(34)
print(q.get())

 

优先级队列

优先级数越小,则优先级越高

import queue
q = queue.PriorityQueue()
q.put((3,'aaaaa'))
q.put((3,'bbbbb'))
q.put((1,'ccccc'))
q.put((3,'ddddd'))
print(q.get())
print(q.get())

 

双线队列

import queue
q = queue.deque()
q.append(123)
q.append(456)
q.appendleft(780)
print(q)
print(q.pop())
print(q.popleft())

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一壶浊酒..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值