This is complexity O(N), where N is max_size of hash_table:

def **len**(self):

return len([x for x in self])

and this should be with complexity O(1):

def **len**(self):

return MAX_HASH_TABLE_SIZE

But how about the size of has_table when counting only used indices?

#Get rid of indices with None, complexity O(N)

def shrink_hash_table(self):

return [x for x in self if x is not None]

#Hash_table size without None indices, complexity O(N) depends on size N of hashed dict

def len_dense_hash_table(self):

return len([x for x in shrink_hash_table(self)])

Am I right?