PythonはキャッシュLRUホットを達成します

+ LRUアルゴリズムのハッシュベースのリスト。

  • ホットへのアクセスは、元の場所からそれを削除すると、リストのヘッダに差し込み

  • 情報格納されたハッシュキーのホットスポットを使用して、時間計算量はO(1)で読み出され、削除するために

 

 クラスLRUCaceh():
      DEF  __init__(セルフ、サイズ= 5 ):
          「」「
         デフォルトのキューの長さが5される
         ルックアップするために辞書を使用し、リストを維持するために使用
         」「」
         self.size = サイズ
         self.cache中 = dictの()
         セルフ。キー = [] 
     DEF GET(セルフ、鍵):
          '' ' 
         キーキャッシュの値を得るために
         ''' 
         IF self.cache.get(キー):
             self.key.remove(キー)
             self.key.insert( 0、キー)
             リターンself.cacheで[キー]
          の戻りなし
     DEFセット(自己、キー、値):
          '' ' 
         设置缓存、实现缓存淘汰
         ''' 
         もしself.cache.get(キー):
             self.cache.pop(キー)
             self.cache [キー] = 
             self.key .remove(キー)
             self.key.insert(0、キー)
         ELIF LEN(self.key)== self.size:
             old_key = self.key.pop()
             self.key.insert(0、キー)
             self.cache .pop(old_key)
             self.cache [キー] = 
             self.key.insert(0、キー)
             self.cache [キー] =値

 

 

おすすめ

転載: www.cnblogs.com/ddpj/p/11754610.html