如何在Python中实现循环缓冲区?

如何在Python中实现循环缓冲区?,python,arrays,matrix,sliding-window,Python,Arrays,Matrix,Sliding Window,例如,我有一个矩阵 a=[12,2,4,67,8,9,23] 我想要一个代码,在它后面附加一个值,比如45,然后删除第一个值“12” 所以本质上我想 a = [2,4,67,8,9,23,45] 我想使用正则矩阵而不是numpy矩阵,所以我不能使用hstack或vstack 如何在python中实现这一点?如果您有任何帮助,我们将不胜感激,谢谢您 最简单的方法是: a = a[1:] + [45] 您可以这样做: a=[12,2,4,67,8,9,23] a.append(45) a.p

例如,我有一个矩阵

a=[12,2,4,67,8,9,23]
我想要一个代码,在它后面附加一个值,比如45,然后删除第一个值“12” 所以本质上我想

a = [2,4,67,8,9,23,45]
我想使用正则矩阵而不是numpy矩阵,所以我不能使用hstack或vstack 如何在python中实现这一点?如果您有任何帮助,我们将不胜感激,谢谢您

最简单的方法是:

a = a[1:] + [45]
您可以这样做:

a=[12,2,4,67,8,9,23]
a.append(45)
a.pop(0)

这不是一个滑动窗口;这是一个循环缓冲区。哦,对不起,谢谢你的信息。这太棒了。我应该想到这一点,我只是python的初学者。谢谢,没问题,但是如果性能是一个问题的话,FogleBird的答案实际上更有效。谢谢,但是deque是什么意思?谢谢你的回答,但我想我会同意玛丽安的答案simpler@user17151deque=双端队列。如果您有20个值,那么使用哪个值并不重要。如果有200万个值,则deque是要执行的qay,而不仅仅是一个列表。@user17151:这很好,但deque更高效,因为它不必在每次追加元素时复制整个数据结构。这使追加操作更高效,但是在数据结构的中间访问元素的效率比使用列表(O(n)vs O(1))要低。
a=[12,2,4,67,8,9,23]
a.append(45)
a.pop(0)