[英]Need python dictionary to act like deque (have maximum length)
有沒有內置(或非常簡單)的方法讓python字典以與deque類似的方式工作。
我需要它具有最大大小,並且當添加新密鑰時,如果達到最大長度,則刪除首先添加的密鑰。 作為自定義類實現起來應該不會太難,但總是首選使用內置類。
我正在使用Python 3.6,如果有任何幫助。
它聽起來像是OrderedDict
的變種。
class FixSizeOrderedDict(OrderedDict):
def __init__(self, *args, max=0, **kwargs):
self._max = max
super().__init__(*args, **kwargs)
def __setitem__(self, key, value):
OrderedDict.__setitem__(self, key, value)
if self._max > 0:
if len(self) > self._max:
self.popitem(False)
聽起來你想要一個最近最少使用(LRU)的緩存。
functools.lru_cache裝飾器可能對您有用。 如果您想要更多控制,請查看包pylru或只是谷歌Python LRU緩存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.