【发布时间】:2021-04-19 00:18:02
【问题描述】:
我在 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)
【问题讨论】:
标签: python dictionary lru ordereddict