There was an error while loading. Please reload this page.
1 parent e718fb4 commit 4ea6097Copy full SHA for 4ea6097
1 file changed
Sprint-2/implement_lru_cache/lru_cache.py
@@ -0,0 +1,20 @@
1
+import datetime
2
+
3
+class LruCache:
4
+ def __init__(self, limit):
5
+ if limit < 1:
6
+ raise ValueError("Cache limit should be more than or equal to 1")
7
+ self.cache = []
8
+ self.limit = limit
9
10
+ def set(self, key, value):
11
+ while len(self.cache) >= self.limit:
12
+ oldest = min(self.cache, key=lambda data: data["time"])
13
+ self.cache.remove(oldest)
14
+ self.cache.append({key: value, "time": datetime.datetime.now()})
15
16
+ def get(self, key):
17
+ for data in self.cache:
18
+ if key in data:
19
+ data["time"] = datetime.datetime.now()
20
+ return data[key]
0 commit comments