Хэшируемые типы данных в Python — это неизменяемые типы, экземпляры которых имеют фиксированное хэш-значение на протяжении всего своего жизненного цикла. Это значение вычисляется с помощью хэш-функции и используется для быстрого поиска элементов в множествах (sets) и ключей в словарях (dictionaries).
Свойства хэшируемых типов:
__hash__
: ** Этот метод должен возвращать целочисленное хэш-значение объекта. Если метод не определен или возвращает None
, объект считается нехэшируемым.__eq__
: ** Этот метод должен определять равенство объектов. Если два объекта равны (a == b
), то их хэш-значения должны быть равны (hash(a) == hash(b)
). Обратное неверно: два объекта могут иметь одинаковое хэш-значение, но быть неравными (коллизия хэшей).Примеры хэшируемых встроенных типов:
int
, float
, complex
):
python
str
):
python
tuple
): При условии, что все элементы кортежа хэшируемы.
python
bool
):
python
NoneType
:
python
Примеры нехэшируемых встроенных типов:
list
): Изменяемы.
python
set
): Изменяемы.
python
Хэшируемые типы данных в Python — это неизменяемые типы, экземпляры которых имеют фиксированное хэш-значение на протяжении всего своего жизненного цикла. Это значение вычисляется с помощью хэш-функции и используется для быстрого поиска элементов в множествах (sets) и ключей в словарях (dictionaries).
Свойства хэшируемых типов:
__hash__
: ** Этот метод должен возвращать целочисленное хэш-значение объекта. Если метод не определен или возвращает None
, объект считается нехэшируемым.__eq__
: ** Этот метод должен определять равенство объектов. Если два объекта равны (a == b
), то их хэш-значения должны быть равны (hash(a) == hash(b)
). Обратное неверно: два объекта могут иметь одинаковое хэш-значение, но быть неравными (коллизия хэшей).Примеры хэшируемых встроенных типов:
int
, float
, complex
):
python
str
):
python
tuple
): При условии, что все элементы кортежа хэшируемы.
python
bool
):
python
NoneType
:
python
Примеры нехэшируемых встроенных типов:
list
): Изменяемы.
python
set
): Изменяемы.
python
Register or sign in to get access to full answers for all questions from the question bank.