python队列

目录

  1. 1. 所需模块
  2. 2. 第一种、先进先出
    1. 2.1. 或者
  3. 3. 第二种、后进先出
  4. 4. 第三种、优先级队列 优先级设置数越小等级越高

所需模块

1
from queue import Queue, LifoQueue, PriorityQueue

第一种、先进先出

1
2
3
4
5
6
7
q = Queue(maxsize=0)	#设置队列中,数据上限,小于或等于0则不限制,容器中大于这个数则阻塞,直到队列中的数据被消掉
q.put(6) #进队 6
q.put(9) #进队 9
q.put(100) #进队 100
print(q.queue) #deque([6, 9, 100])
q.get() #出队
print(q.queue) #deque([9, 100])

或者

empty 队空 True

1
2
3
import queue
q = queue.Queue()
print(q.empty()) #输出:True

full 队满 True

1
2
3
4
import queue
q = queue.Queue(1) #指定队大小
q.put('a')
print(q.full()) #输出:True

qsize 返回队列里面包含多少元素

1
2
3
4
5
6
7
8
9
import queue
q = queue.Queue()
q.put('a')
q.put('c')
print(q.size()) #输出为:2

print(q.get()) #出队元素

print(q.size()) #输出为:1

第二种、后进先出

1
2
3
4
5
6
7
lq = LifoQueue(maxsize=0)
lq.put(6)
lq.put(9)
lq.put(100)
print(lq.queue) #[6, 9, 100]
lq.get()
print(lq.queue) #[6, 9]

第三种、优先级队列 优先级设置数越小等级越高

1
2
3
4
5
6
7
pq = PriorityQueue(maxsize=0)
pq.put(56, 'a')
pq.put(65, 'b')
pq.put(1, 'c')
print(pq.queue) #[1, 65, 56]
pq.get()
print(pq.queue) #[56, 65]