固定长度队列,当在末尾添加元素时删除第一个元素(先进先出)

pis*_*all 4 python queue

Python中是否有这样一个队列的实现,它具有固定长度,当满时,弹出最左边的元素,同时在右边追加一个元素?

假设q = Queue([1,2,3,4,5])我的队列的最大长度为 5,我说q.append(6),那么预期输出print(q)应该是Queue([2,3,4,5,6])

这个问题也可以链接到:是否有一个固定大小的队列可以删除过多的元素?

pis*_*all 6

回答我自己的问题:

我尝试过使用collections.deque()and queue.Queue(),并且deque是这样的实现

d = deque(maxlen=5)
d.extend([1,2,3,4,5])
print(d)
# deque([1, 2, 3, 4, 5], maxlen=5)
d.append(10)
print(d)
# deque([2, 3, 4, 5, 10], maxlen=5)
Run Code Online (Sandbox Code Playgroud)