Your browser does not support the Canvas element.

collection 模块 双端队列

单端队列

  用于同一进程中的队列,可以叫做单进程队列。

  queue

  遵循先进先出,先进去的必须先出来

  1、先进先出:

  impore queue

  q = queue.Queue()    实例化一个对象

  q.put(1)         put()  放值

  q.put('abc')

  q.put([1,2,3])

  q.get()          get()  取值   谁先进去,就先取谁。

  2、后进先出:

  import queue

  q = queue.LifoQueue()    

  q.put(1)

  q.put(2)

  print(q.get())

  print(q.get())

  3、优先级队列

  import queue

  q = queue.PriorityQueue()

  q.put((1,'aa'))    优先级队列放的是一个元组,且第一位如果是数字,数字越小优先级越高,优先往出取。(包括负数)

  q.put((2,'bb'))

  q.put(('a','ss'))    优先级队列中的元组如果第一位是字符串,那么就比较它的ASCII码的数值,ASCII码越小越好。

  q.put('1','xx'))

  注意:如果一个队列中既放了数字开头的优先级元祖,又放了字符串开头的优先级元组,将无法比较。

双端队列

  deque

  clooection 实际上是一个包,deque是他里边的一个模块。所以导入的时候是

  from collection import deque

  

  双端队列  和 列表的 remove / insert 时,效率是有差别的。双端队列会很快。因为双端队列底层用的是链表。

  

 

  

 

posted @ 2018-08-11 19:26  一根小菜  阅读(110)  评论(0编辑  收藏  举报
Your browser does not support the Canvas element.