pythonLRU算法
时间: 2023-07-10 11:06:51 浏览: 179
基于python的LRU算法设计与实现
Python LRU算法是一种缓存淘汰策略,它基于最近最少使用原则,即当缓存满时,会优先淘汰最近最少使用的缓存。
下面是一个简单的Python LRU算法实现:
```python
from collections import OrderedDict
class LRUCache:
def __init__(self, capacity: int):
self.cache = OrderedDict()
self.capacity = capacity
def get(self, key: int) -> int:
if key not in self.cache:
return -1
self.cache.move_to_end(key)
return self.cache[key]
def put(self, key: int, value: int) -> None:
if key in self.cache:
self.cache.move_to_end(key)
self.cache[key] = value
if len(self.cache) > self.capacity:
self.cache.popitem(last=False)
```
在上述实现中,我们使用了Python中的OrderedDict类来实现LRU算法。该类内部维护了一个有序字典,其中最近访问的元素会被移动到字典的末尾,而最久未访问的元素会被移动到字典的开头。当缓存已满时,我们可以通过popitem()方法将字典开头的元素删除,从而实现缓存淘汰的目的。在get()和put()方法中,我们都会将访问的元素移动到字典的末尾,以保证最近访问的元素永远在字典的末尾。
阅读全文