
Друзья, продолжаем тему множеств и словарей.
Оба типа (
Использование хеш-таблицы для реализации множеств и словарей приводит к неочевидному поведению в некоторых ситуациях. А именно: элементы, являющиеся равными с точки зрения оператора
Например, если в множестве уже есть значение
Знали ли вы об этом поведении?
⚡️ В нашем новом курсе по ООП мы добавили урок, в котором рассказали об устройстве множеств и словарей. Это очень важный материал, освойте его полностью.
#полезныйматериал #set #dict
Оба типа (
set
и dict
) построены на структуре данных, которая называется хеш-таблица. Важное свойство хеш-таблиц состоит в том, что при некоторых разумных допущениях все три операции (добавление, удаление, поиск элемента) в среднем выполняются за константное время, то есть достаточно быстро. Именно поэтому множества и словари отлично подходят в ситуациях, когда нужно осуществлять частый поиск по данным.Использование хеш-таблицы для реализации множеств и словарей приводит к неочевидному поведению в некоторых ситуациях. А именно: элементы, являющиеся равными с точки зрения оператора
==
и имеющие одинаковые хеш-значения, считаются идентичными с точки зрения множеств и словарей в Python. К таковым можно отнести значения False, 0, 0.0
.Например, если в множестве уже есть значение
False
и мы пытаемся добавить в него значения 0
или 0.0
, то будем приятно удивлены тому, что новое значение не будет добавлено. Аналогичное поведение мы получим при работе со словарями. Тут ситуация еще интереснее. Скажем, пусть в словаре уже есть элемент с ключом False
. При попытке добавить в словарь новый элемент с ключом 0
или 0.0
Python перезапишет значение по ключу False
, при этом сам ключ останется исходным, то есть False
. Внимательно проанализируйте картинку к этому посту.Знали ли вы об этом поведении?
#полезныйматериал #set #dict