Queue doesn't sound fit because I don't want to delete an element when I need to read it.
An element should be deleted only when the list is full and a new element is waiting to be added. In this situation, the oldest element will be deleted to make room for the new one.
It can be done somehow with item_counter and list_size using modulo.
For example, if list_size = 10, and item_counter = 11,
then item_counter % list_size = 1 and the next item will go to list[1].
But then maintaining the FIFO part gets nastier..
Are there any better ways to achieve that in Python?