Skip to content
Advertisement

Python Datatype for a fixed-length FIFO

I would like to know if there is a native datatype in Python that acts like a fixed-length FIFO buffer. For example, I want do create a length-5 FIFO buffer that is initialized with all zeros. Then, it might look like this:

[0,0,0,0,0]

Then, when I call the put function on the object, it will shift off the last zero and put the new value, say 1, into the left side:

[1,0,0,0,0]

If I put a 2, it would then shift and put to look like this:

[2,1,0,0,0]

…and so on. The new value goes at the front and the oldest one is shifted off. I understand that this would be very easy to implement myself, but I would like to use native python datatypes if at all possible. Does anyone know which datatype would be best for this?

Advertisement

Answer

JavaScript

See the docs for more about collections.deque; the method you call push is actually called appendleft in that type.

The second parameter (maxlen, giving the maximum lengths) was added in Python 2.6; if you’re using older versions of Python, it won’t be available.

User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement