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

时间:2012-11-29 15:08:28

标签: 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中这样做?任何帮助将不胜感激,谢谢

3 个答案:

答案 0 :(得分:10)

使用双端队列。

http://docs.python.org/2/library/collections.html#collections.deque

>>> import collections
>>> d = collections.deque(maxlen=7)
>>> d.extend([12,2,4,67,8,9,23])
>>> d.append(45)
>>> print d
deque([2, 4, 67, 8, 9, 23, 45], maxlen=7)

答案 1 :(得分:1)

最简单的方法:

a = a[1:] + [45]

答案 2 :(得分:0)

你可以这样做:

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