Я думаю, что ваша идея хеш-таблицы немного [несуществующей]. Хеш-таблицы разбивают ключи на одинаковые списки. Например: хеш-таблица на основе первой буквы имени, поэтому будет 26 списков. Ваш хеш - это первая буква имени, что ускоряет поиск.
md5, sha1 используются для получения хэшей, которые используются для проверки того, что данные не были подделаны. они обычно бывают либо 128-битные, либо 160-битные версии. Таким образом, он принимает данные X и отправляет их через хеш, чтобы получить 128-битную буквенно-цифровую строку, которая должна быть одинаковой, независимо от того, где она выполняется. Обычно это вопрос безопасности.
РЕДАКТИРОВАТЬ: Расширение вопроса о том, как получить ключи.
Вы можете использовать модуль данных для создания ключа, который будет использоваться для строки. В примере данных% X, где X - общее количество ключей, которое вы хотели бы иметь. Проблема в том, что X трудно найти; если у вас есть 20 предметов, тогда возможно сделать X из 20, что делает его быстрым поиском, поскольку у каждого предмета есть свой ряд. Но если у вас есть 1000 предметов, то выполнение% 1000 НЕ возможно. Делать что-то вроде X = 75 будет лучше для этого.