Словари - это неупорядоченные коллекции пар "ключ-значение". В качестве ключей могут использоваться ссылки на хешируемые объекты, а в качестве значений - ссылки на объекты любого типа. Т.к. словари являются неупорядоченными коллекциями, то к ним не применяется понятие индекса элемента и не применяется операция извлечения среза. Хешируемые объекты - объекты, которые имеют метод __hash__() и могут участвовать в операциях сравнения на равенство с помощью метода __eq__(). Метод __hash__() возвращает одно и то же значение объекта на протяжении его жизненного цикла...
Статья подготовлена для студентов курса «Разработчик Python» в образовательном проекте OTUS. Словарь в Python является фундаментальным типом хотя бы потому, что используется для хранения атрибутов объектов любого класса. Внутри словарь реализован как хеш-таблица с открытой адресацией, где коллизии разрешаются методом квадратичного пробинга, таблица расширяется при заполнении более чем на ⅔. Вообще, словари достаточно хорошо описаны и стоят того, чтобы взглянуть на их исходники (искать в Objects/dictobject...