Авторизация
Забыли пароль? Введите ваш е-мейл адрес. Вы получите письмо на почту со ссылкой для восстановления пароля.
После регистрации вы сможете задавать вопросы и писать свои ответы, получая за это бонусы. Все остальные функции на сайте доступны без регистрации.
Вы должны войти или зарегистрироваться, чтобы добавить ответ и получить бонусы.
LRU (Least Recently Used) cache в Python — это структура данных, которая используется для кэширования элементов с ограниченным размером. Она хранит некоторое количество наиболее недавно используемых элементов и автоматически удаляет наименее недавно использованные элементы при достижении предела размера.
LRU cache в Python может быть реализован с использованием OrderedDict из модуля collections. OrderedDict — это словарь, который запоминает порядок добавления элементов. При каждом доступе к элементу в LRU cache, он перемещается в конец словаря, чтобы указать на его недавнее использование. При добавлении нового элемента, если кэш достигает предела размера, наименее недавно использованный элемент удаляется из начала словаря.
Пример использования LRU cache в Python:
«`python
from collections import OrderedDict
class LRUCache:
def __init__(self, capacity):
self.capacity = capacity
self.cache = OrderedDict()
def get(self, key):
if key in self.cache:
value = self.cache[key]
del self.cache[key]
self.cache[key] = value
return value
return -1
def put(self, key, value):
if key in self.cache:
del self.cache[key]
elif len(self.cache) >= self.capacity:
self.cache.popitem(last=False)
self.cache[key] = value
«`
В этом примере класс LRUCache имеет методы get и put для получения и добавления элементов в кэш соответственно. Кэш инициализируется с заданной вместимостью и использует OrderedDict для хранения элементов. Метод get проверяет наличие элемента в кэше и перемещает его в конец словаря, если он найден. Метод put добавляет новый элемент в кэш, удаляя наименее недавно использованный элемент, если кэш достиг предела размера.
Таким образом, LRU cache в Python позволяет эффективно кэшировать наиболее недавно используемые элементы, что может быть полезно для оптимизации производительности программы.