#使用OrderedDict实现FIFO的Dict,当超出容量后,自动删除最早添加的key
from collections import OrderedDict
class DictFIFO(OrderedDict):
def __init__(self,capacity=None):
super().__init__()
self._capacity = capacity
def __setitem__(self,key,value):
if self._capacity and key not in self and len(self)>=self._capacity:
last = self.popitem(last=False)
OrderedDict.__setitem__(self,key,value)
f = DictFIFO()
久疤_796
对存在的key,采用覆盖的方式,不改变其顺序。 如果是删除后再添加,那么它就跑到最后面去了。 根据需要吧。