python queue的使用

普通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())

参考文章:

https://blog.csdn.net/brucewong0516/article/details/84025027?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.essearch_pc_relevant


版权声明:本文为qq_39627843原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。