class LRUcache: def __init__(self, size=5): self.cache = {} self.elems = [] self.size = size def get_data(self, elem): if elem in self.cache: self.elems.remove(elem) self.elems.insert(0, elem) return self.cache[elem] else: return None def set_data(self, elem, value): if elem in self.cache: self.elems.remove(elem) self.elems.insert(0, elem) self.cache[elem] = value elif len(self.cache) == self.size: old = self.elems.pop() self.cache.pop(old) self.elems.insert(0, elem) self.cache[elem] = value else: self.elems.insert(0, elem) self.cache[elem] = value if __name__ == '__main__': test = LRUcache() test.set_data('A',1) test.set_data('B',1) test.set_data('C',1) test.set_data('d',1) test.set_data('e',1) test.set_data('f',1) print(test.get_data('a')) print(test.get_data('d')) print(test.cache,test.elems)
python 缓存淘汰
最新推荐文章于 2024-02-04 10:12:50 发布