input: def HashTable:
      def __init__(self):
          self.table = [[] for _ in range(256)]
   
      def insert(self, key, value):
          h = hash(key) % 256
          for i, kv in enumerate(self.table[h]):
              if kv[0] == key:
                  self.table[h][i] = (key, value)
                  return
          self.table[h].append((key, value))
   
      def retrieve(self, key):
          h = hash(key) % 256
          for kv in self.table[h]:
              if kv[0] == key:
                  return kv[1]
   
      def delete(self, key):
          h = hash(key) % 256
          for i, kv in enumerate(self.table[h]):
              if kv[0] == key:
                  del self.table[h][i]
  
  """Implement a hash table in Python that supports insert, delete and retrieve operations.
  >>> ht = HashTable()
  >>> ht.insert("apple", 3)
  >>> ht.insert("banana", 5)
  >>> ht.retrieve("apple")
  3
  >>> ht.delete("apple")
  >>> ht.retrieve("apple")
  None
  """
output:     def __str__(self):
          return str(self.table)
  
      def __len__(self):
          return sum(len(bucket) for bucket in self.table)