单端队列
用于同一进程中的队列,可以叫做单进程队列。
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 时,效率是有差别的。双端队列会很快。因为双端队列底层用的是链表。