I am not looking to preserve data. I am looking for a container that contains the last N items I stuffed in it, and allows items to fall off the back end of it and expire.
blocking_lifo = queue.LifoQueue(maxsize=2)
blocking_lifo.put("foo")
blocking_lifo.put("bar")
blocking_lifo.put("foo') # <-- fail
Not the behavior I am looking for. Instead, I'd like python to destroy what ever is in the back, and just store the two most recent things.
I also don't want to pop the head -- all I want is a LIFO vessel that has the latest element at position zero, and n elements (specified by me) that represent, exactly, the last n elements pushed in in a lifo order, with no steps or maintence by me to make the items that fall off the end of the queue fall off.
Is there a class for this kind of functionality in python3?
collections.deque
withmaxlen=2
does exactly what you want: