普通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))
q.put(Item('socks', 20))
print(q.get())
#输出 book:5
双端队列:
双端队列要用到collections里面的deque
if __name__ == '__main__':
import collections
q = collections.deque()
q.append(1)
q.append(2)
q.append(3)
print(q.popleft())
print(q.pop())参考文章:
版权声明:本文为qq_39627843原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。