В качестве альтернативы для этого можно использовать список кортежей.
MAXSIZE = 4
stack = []
def add(key, value):
stack.append((key, value))
if len(stack) > MAXSIZE:
stack.pop(0)
print stack
add('a','1')
add('b','2')
add('c','3')
add('d','4')
add('e','5')
результаты в
[('a', '1')]
[('a', '1'), ('b', '2')]
[('a', '1'), ('b', '2'), ('c', '3')]
[('a', '1'), ('b', '2'), ('c', '3'), ('d', '4')]
[('b', '2'), ('c', '3'), ('d', '4'), ('e', '5')]
Обратите внимание, что при этом методе вы теряете скорость поиска в словаре. Так что, если вам нужно, заказанный словарь может быть в порядке.
Вы можете найти реализацию команды pocoo здесь . Я всегда находил их работу превосходной.