В Python OrderedDict— это подкласс словаря, который запоминает порядок вставки элементов. С другой стороны, LRU означает «наименее недавно использованный» и относится к стратегии кэширования, при которой наименее использованные элементы удаляются из кэша, когда он заполняется.
Вот несколько методов, связанных с кэшированием OrderedDictи LRU в Python, а также примеры кода:
- 
из коллекций import OrderedDict: эта строка импортирует классOrderedDictиз модуляcollections.
- 
ordered_dict = OrderedDict(): создается экземплярOrderedDict.
- 
ordered_dict[key] = value: добавляет пару ключ-значение вOrderedDict. Порядок вставки сохраняется.
- 
ordered_dict.popitem(last=True): удаляет и возвращает последнюю (или первую, еслиlast=False) пару ключ-значение изOrderedDict, позволяющий реализовать кэширование LRU.
- 
ordered_dict.move_to_end(key,last=True): перемещает указанный ключ в конец (или начало, еслиlast=False)OrderedDict, эффективно обновляя свою позицию в кэше LRU.
- 
ordered_dict.clear(): удаляет все элементы изOrderedDict.
Вот пример, демонстрирующий использование OrderedDictс кэшированием LRU:
from collections import OrderedDict
class LRUCache:
    def __init__(self, capacity):
        self.capacity = capacity
        self.cache = OrderedDict()
    def get(self, key):
        if key not in self.cache:
            return -1
        self.cache.move_to_end(key)
        return self.cache[key]
    def put(self, key, value):
        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)
# Usage
cache = LRUCache(3)
cache.put("key1", "value1")
cache.put("key2", "value2")
cache.put("key3", "value3")
print(cache.get("key1"))  # Output: value1
print(cache.get("key2"))  # Output: value2
print(cache.get("key4"))  # Output: -1 (not found in cache)