Page 113 - Bkhargava_-_Grokaem_algoritmy
P. 113
112 Глава 5. Хеш-таблицы
Код выглядит так:
voted = {}
def check_voter(name) :
if voted.get(name):
print "kick them out!"
else :
voted[name] = True
print "let them vote!"
Давайте .протестируем его на нескольких примерах:
>» check_voter("tom")
let them vote!
»> check_voter("mike")
let them vote!
>>> check_voter("mike")
kick them out!
Когда Том приходит на участок в первый раз , программа разрешает ему
проголосовать. Потом приходит Майк, который тоже допускается к голосо
ванию. Но потом Майк делает вторую попытку, и на этот раз у него ничего
не получается.
Если бы имена проголосовавших хранились в списке, то выполнение
функции со временем замедлилось бы, потому что функции пришлось
бы проводить простой поиск по всему списку. Но имена хранятся в хеш
таблице, а хеш-таблица мгновенно сообщает, присутствует имя избирателя
в списке или нет. Проверка дубликатов в хеш-таблице выполняется очень
быстро.
Использование хеш-таблицы как кэша
Последний пример: кэширование. Если вы ра
ботаете над созданием веб-сайтов, вероятно, вы
уже слышали о пользе кэширования. Общая
идея кэширования такова: допустим, вы захо
дите на сайт f acebook.com:
1. Вы обращаетесь с запросом к серверу Face-
book.
www.trk.kg