Working through the second assignment of Data structures and algorithms…pertaining to Hashtables.

my code for the last question is -

class ProbingHashTable:

```
def __init__(self, max_size=MAX_HASH_TABLE_SIZE):
# 1. Create a list of size `max_size` with all values None
self.data_list = [None] * max_size
def insert(self, key, value):
# 1. Find the index for the key using get_valid_index
idx = get_valid_index(self.data_list, key)
# 2. Store the key-value pair at the right index
self.data_list[idx] = (key,value)
def find(self, key):
# 1. Find the index for the key using get_valid_index
idx = get_valid_index(self.data_list, key)
# 2. Retrieve the data stored at the index
kv = self.data_list[idx]
# 3. Return the value if found, else return None
return None if kv is None else kv[1]
def update(self, key, value):
# 1. Find the index for the key using get_valid_index
idx = get_valid_index(self.data_list, key)
# 2. Store the new key-value pair at the right index
self.data_list[idx] = (key,value)
def list_all(self):
# 1. Extract the key from each key-value pair
return [kv[0] for kv in self.data_list if kv is not None]
```

All of my previous question cells have given the correct outputs but this code is giving me all false outputs. can someone help or give me a hint?

Thanks in advance.