mass = [[] for _ in range(11)] # простое число даёт меньше коллизий
def to_hash(x): return sum(map(ord, x)) % len(mass) # зачем переусложнять?
def add_hash(key, val):
global mass
mass[to_hash(key)].append((key, val, ))
def find_in_hash(key):
for v in mass[to_hash(key)]:
if key == v[0]: return v[1]
return None
add_hash('Bill', 'Clinton')
add_hash('Ronald', 'Reagan')
...
print(find_in_hash(input('Name of president ').capitalize()))
Вот это моё решение походит на реализацию "метода цепочек". Вроде всё работает, вводим например Ronald, получаем Reagan