Типы dict и set в Python построены на основе хэш-таблиц. В этой статье объясняется как использование хэш-таблиц определяет сильные и слабые стороны этих типов контейнеров.Вот некоторые вопросы, на которые отвечает эта статья: • Насколько эффективны dict и set в Python? • Почему элементы множества неупорядоченны? • Почему мы не можем использовать любой объект Python в качестве ключа dict или элемента set? • Почему порядок ключей dict зависит от порядка вставки? Читать далее
Какое-то время назад, во время разбора кода мы обсудили выбор dict() вместо {} в новом коде на Python. Коллега утверждал, что dict() более читаем и чётче выражает цель, поэтому следует предпочесть его. Меня это не убедило, но в тот момент контраргуентов не нашлось, поэтому я воздержался.Это заставило меня задуматься: в чём разница между типом dict и литеральным выражением {}?Давайте изучим этот вопрос. Читать далее
Python и теория множеств В Python есть очень полезный тип данных для работы с множествами – это set. Об этом типе данных, примерах использования, и небольшой выдержке из теории множеств пойдёт речь далее. Читать дальше →
Внутреннее устройство словарей в Python не ограничивается одними лишь бакетами и закрытым хешированием. Это удивительный мир разделяемых ключей, кеширования хешей, DKIX_DUMMY и быстрого сравнения, которое можно сделать ещё быстрее (ценой бага с примерной вероятностью в 2^-64). Если вы не