队列

队列一个重要的数据结构,也比较简单。python内置了队列的实现,十分好用,
下面就是一些例子:

import Queue
q = Queue.Queue() #普通队列
for i in range(5):    
  q.put(i)
while not q.empty():    
  print q.get()

后进先出队列,这个有点像栈,也可以当作栈来用。


q = Queue.LifoQueue()
for i in range(5):    
  q.put(i)
while not q.empty():    
  print q.get()

优先队列,可以给队列里的元素设置优先级,弹出时优先级高的先弹出。


q = Queue.PriorityQueue()
q.put([2,'hello'])
q.put([4,'good'])
print q.get()
class Job():    
  def __init__(self,describe,priority):        
    self.describe = describe        
    self.priority = priority    
  def __cmp__(self, other):        
    return cmp(self.priority,other.priority)
q1 = Queue.PriorityQueue(0)
q1.put( Job(3, 'Mid-level job'))#也可以传入对象
q1.put( Job(10, 'Low-level job'))
q1.put( Job(1, 'Important job'))
print q1.get().describe
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GCD调度队列是执行任务的强大工具。调度队列允许您相对于调度者异步或者同步的执行任意代码块。您能够使用调度队列来执...
    坤坤同学阅读 6,700评论 1 3
  • 一、 消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能...
    步积阅读 57,162评论 10 138
  • Cocoa操作(operation)是一种面向对象的方式来封装您想要异步执行的工作。操作被设计用来和操作队列(op...
    坤坤同学阅读 10,072评论 0 3
  • 阿呆从小父亲就去世了,母亲是个目不识丁的农妇。唯一可庆幸的是母亲有一颗爱阿呆的心,有一双勤劳的手。姐妹三人在母亲的...
    轻舟one阅读 320评论 0 0
  • 文丨八梨央 一定有过吧。 甜言蜜语变成恶语相向,含情脉脉变成气急败坏,视若珍宝变成不闻不问,曾经约定要相濡以沫一辈...
    八梨央阅读 331评论 0 4