'How do I implement a circular buffer in Python?
I have a matrix for instance
a=[12,2,4,67,8,9,23]
and I would like a code that appends a value say 45 to it and removes the first value '12' so in essence I want to make
a = [2,4,67,8,9,23,45]
I want to work with regular matrices not numpy matrices so I can't use hstack or vstack How do I do this in python? Any help would be appreciated, thanks
Solution 1:[1]
Use a deque.
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)
Solution 2:[2]
You can do this:
a=[12,2,4,67,8,9,23]
a.append(45)
a.pop(0)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | FogleBird |
| Solution 2 | PTEC Productions |
