Сравнение и хеширование Python: задачи на __eq__, __lt__ и set
Объект уже лежит в set, но после изменения поля поиск ведёт себя неожиданно. Другой объект умеет сравниваться только с частью соседей. Эти ситуации заставляют разобраться в согласованности равенства, хеширования и порядка. В задачах нужно искать объекты с изменённым хешем, задавать сравнение с допустимым диапазоном и ранжировать экземпляры разных классов. Вопросы про NotImplemented помогут отличить неподдерживаемое сравнение от обычного результата False.
Как заниматься
6 заданий ниже можно проходить по порядку или выбирать нужную проблему. В заданиях на код есть проверка решения; в вопросах — проверка выбранного ответа. Требования к реализации и примеры приведены на страницах заданий.
Вся практика собрана в бесплатном большом задачнике по Python для разработчиков.
Смежная практика
- Изменение хеша объекта в set: вопрос по Python hash и eq
Изменение хеша объекта в set: вопрос по Python hash и eq. Вопрос с проверкой ответа.
Практический Python для разработчиков: большой задачник - NotImplemented в lt: как Python сравнивает объекты
NotImplemented в lt: как Python сравнивает объекты. Вопрос с проверкой ответа.
Практический Python для разработчиков: большой задачник - Сравнение объектов Python: lt и несовместимые группы
Сравнение объектов Python: lt и несовместимые группы. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Python set: найдите объекты с изменённым хешем
Python set: найдите объекты с изменённым хешем. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Python eq: сравнение объекта с диапазоном допустимых значений
Python eq: сравнение объекта с диапазоном допустимых значений. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Rich comparisons Python: ранжирование объектов разных классов
Rich comparisons Python: ранжирование объектов разных классов. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник
