普通queue的使用:
put表示向队列中插入,get表示取队列中最前端,队列中元素减1
import queue
q=queue.Queue(5) #如果不设置长度,默认为无限长
print(q.maxsize) #注意没有括号
q.put(123)
q.put(456)
q.put(789)
print(q.get())
#输入123
print(q.get())
#输出789
后进先出队列,类似于栈
q = queue.LifoQueue()
q.put(12)
q.put(34)
print(q.get())
#输入34
优先级队列:
import queue
class Item():
def __init__(self, name, price):
self.name = name
self.price = price
#定义比较的优先级
def __lt__(self, other):
return self.price<other.price
def __str__(self):
return self.name+":"+str(self.price)
if __name__ == '__main__':
q = queue.PriorityQueue()
q.put(Item('fan', 100))
q.put(Item('phone', 2034))
q.put(Item('book', 5))