input: Write a function to create a hash table in Python that supports insert, delete, and retrieve operations. The hash table should handle collisions using chaining. The function should return an instance of the hash table class.
  assert hash_table.insert("key1", "value1")==None
  assert hash_table.retrieve("key1")=="value1"
  assert hash_table.delete("key1")==None
  assert hash_table.retrieve("key1")==None
output: class HashTable:
      def __init__(self, size=10):
          self.size = size
          self.table = [[] for _ in range(size)]
  
      def _hash(self, key):
          return hash(key) % self.size
  
      def insert(self, key, value):
          index = self._hash(key)
          for kvp in self.table[index]:
              if kvp[0] == key:
                  kvp[1] = value
                  return
          self.table[index].append([key, value])
  
      def retrieve(self, key):
          index = self._hash(key)
          for kvp in self.table[index]:
              if kvp[0] == key:
                  return kvp[1]
          return None
  
      def delete(self, key):
          index = self._hash(key)
          for i, kvp in enumerate(self.table[index]):
              if kvp[0] == key:
                  del self.table[index][i]
                  return
  
  def create_hash_table():
      return HashTable()