input: Write a python function to implement an LRU (Least Recently Used) Cache.
  assert lru_cache.get(1) == 1
  assert lru_cache.get(2) == 2
  assert lru_cache.get(3) == 3
  assert lru_cache.get(4) is None
  assert lru_cache.get(5) == 5
  
  lru_cache = LRUCache(3)
  lru_cache.put(1, 1)
  lru_cache.put(2, 2)
  lru_cache.put(3, 3)
  assert lru_cache.get(1) == 1
  lru_cache.put(4, 4)
  assert lru_cache.get(2) is None
  lru_cache.put(5, 5)
  assert lru_cache.get(3) is None
  assert lru_cache.get(4) == 4
  assert lru_cache.get(5) == 5
output: from collections import OrderedDict
  
  class LRUCache:
      def __init__(self, capacity: int):
          self.capacity = capacity
          self.cache = OrderedDict()
  
      def get(self, key: int) -> int:
          if key not in self.cache:
              return None
          self.cache.move_to_end(key)
          return self.cache[key]
  
      def put(self, key: int, value: int) -> None:
          if key in self.cache:
              self.cache.move_to_end(key)
          self.cache[key] = value
          if len(self.cache) > self.capacity:
              self.cache.popitem(last=False)