Python 2.7和3.1有
OrderedDict,还有早期Pythons的纯Python实现。
from collections import OrderedDict
class LimitedSizeDict(OrderedDict):
def __init__(self, *args, **kwds):
self.size_limit = kwds.pop("size_limit", None)
OrderedDict.__init__(self, *args, **kwds)
self._check_size_limit()
def __setitem__(self, key, value):
OrderedDict.__setitem__(self, key, value)
self._check_size_limit()
def _check_size_limit(self):
if self.size_limit is not None:
while len(self) > self.size_limit:
self.popitem(last=False)
您还必须覆盖可以插入项目的其他方法,例如更新。 OrderedDict的主要用途是,你可以控制什么弹出容易,否则正常的dict将工作。