Хеш таблици

Тази хитринка ще промени живота ви.

Според уикипедия "Хеш таблицата е структура от данни, съдържаща ключ и данни, която се характеризира с директен достъп до елементите, независимо от типа им. Елементите ѝ, подобно тези на други структури от данни използвани за търсене, се състоят от ключ и данни. Ключът е уникален за разлика от данните - не може да съществуват два елемента с един и същи ключ". Хеш таблица в английската Wikipedia

В Python най-често използваната хеш таблица е dict. Важен момент в dict е, че за ключ на таблицата може да се използва всеки тип от данни който може да бъде хеширан. На практика хеширането е съпоставянето на някакви данни (каквито и да са) с число. Например:

>>> hash("Животът на Брайън")
1551610055158196988

Хеширащите алгоритми могат да съпоставят число към данни, които са стотици гигабайти, обаче числото е винаги определен размер (например 32-битово). Това означава, че може да имате "само" 2^32 числа които можете да използвате за хеширане на безкраен брой данни. Това е проблем който хакерите много обичат.

Други речници

Както вече ви научихме, редът на елементите в dict не се пази. Ако някога имате нужда от подредена хеш таблица можете да използвате collections.OrderedDict.

Друг удобен подклас на dict e collections.defaultdict.