天天看點

隊列 先進先出,先進後出,優先級隊列

import queue

#先進先出

q = queue.Queue(3)#設定隊列容量

q.put(1)

q.put(a)

print('檢視目前隊列的容量',q.qsize)

q.put(b)

print('檢視目前容器是否滿了',q.full())#滿了傳回TRUE 沒滿傳回flase

print(q.get_nowait())#從容器中拿一個值.拿到了列印,如果沒拿到容器是空的會報錯,nowait 不等待的意思

q.put_nowait(1)#向容器中存一個值,如果容器滿了無法存入會報錯

二.先進後出隊列,後進先出 類似于棧

q = queue.LifoQueue(3)#指定容量為3

q.put(1)

q.put(2)

q.put(3)

print(q.get())

print(q.get())

print(q.get())

列印結果是 3  2   1  先進後出

三.優先級隊列:可以指定元素的優先級  -3 >-2 > 1  負數優先級高于正數,

假如兩個元素優先級相同,如果元素是數字大小, 數字小的優先

如果是字元串則比較ASCII碼,

,注意:必須以元組的形式去添加

q = queue.PriorityQueue(5)

q.put((1,2))

q.put((1,22))

print(q.get())

print(q.get())

列印結果  (1,2)     (1,22)#會連同優先級一起列印出來

轉載于:https://www.cnblogs.com/16795079a/p/10268703.html