14 lines
471 B
Python
14 lines
471 B
Python
|
|
from collections import UserDict, deque
|
|
class CircularDict(UserDict):
|
|
def __init__(self,init_data = None, max_len = 50):
|
|
self.data = init_data if init_data is not None else dict()
|
|
self.fkkeys = deque(self.data.keys(), max_len)
|
|
self.max_len = max_len
|
|
def __setitem__(self, k,v):
|
|
self.fkkeys.append(k)
|
|
self.data[k] = v
|
|
to_rem = self.data.keys() - set(self.fkkeys)
|
|
[self.data.pop(k) for k in to_rem]
|
|
|