我正在查看 leetcode 上 LRU 缓存实现的解决方案。并且内置的 dict 也是从 Python 3.6+ 订购的。我想知道是否有任何类似于 OrderedDict 的 move_to_end() 的函数可以与内置 dict 一起使用并摆脱 OrderedDict。
from collections import OrderedDict
class LRUCache(OrderedDict):
def __init__(self, capacity):
"""
:type capacity: int
"""
self.capacity = capacity
def get(self, key):
"""
:type key: int
:rtype: int
"""
if key not in self:
return - 1
self.move_to_end(key)
return self[key]
def put(self, key, value):
"""
:type key: int
:type value: int
:rtype: void
"""
if key in self:
self.move_to_end(key)
self[key] = value
if len(self) > self.capacity:
self.popitem(last = False)