diff --git a/u7/hash_table.py b/u7/hash_table.py index cd10e66..17ad8e0 100644 --- a/u7/hash_table.py +++ b/u7/hash_table.py @@ -72,9 +72,10 @@ class HashTable: def __delitem__(self, key): index = self.probe(key) - if self.table[index] is not self.empty: - self.table[index] = self.deleted - self.size -= 1 + if self.table[index] is self.empty or self.table[index] is self.deleted: + raise KeyError(key) + self.table[index] = self.deleted + self.size -= 1 def __contains__(self, key): if self.table[self.probe(key)] is self.empty or self.table[self.probe(key)] is self.deleted: @@ -87,5 +88,5 @@ class HashTable: def __iter__(self): for bucket in self.table: - if bucket is not self.empty: + if bucket is not self.empty and bucket is not self.deleted: yield bucket[0]