这次的功能是编写一个缓存,能取出来特定的值,以及缓存满了的时候能够自动清除最老的数据,将最新的数据更新进去。代码如下:
class LRUCache(object):
def __init__(self, capacity):
"""
:type capacity: int
"""
self.items = {}
self.capacity = capacity
self.num = []
def get(self, key):
"""
:rtype: int
"""
self.key = key
if self.key in self.items.keys():
if self.key in self.num:
self.num.remove(self.key)
self.num.append(self.key)
else:
self.num.append(self.key)
return self.items[key]
else:
return -1
def set(self, key, value):
"""
:type key: int
:type value: int
:rtype: nothing
"""
if key not in self.items.keys():
if len(self.items) == self.capacity:
del self.items[self.num[0]]
self.items[key] = value
del self.num[0]
self.num.append(key)
else:
self.items[key] = value
self.num.append(key)
else:
self.items[key] = value
self.num.remove(key)
self.num.append(key)
本文介绍了一种LRU(Least Recently Used)缓存机制的实现方法,该机制能够在缓存满时自动移除最久未使用的数据,并更新最新数据。通过Python代码展示了如何创建一个限定容量的LRU缓存,当缓存达到最大容量后,新加入的数据会替换掉最旧的数据。
155

被折叠的 条评论
为什么被折叠?



