Вопрос проверяет понимание основного требования к ключам в хеш-таблицах — их неизменяемость и уникальность.
Ключ хеш-таблицы должен быть неизменяемым (immutable). Это означает, что после создания ключа его состояние не может быть изменено. Например, в Python в качестве ключей можно использовать строки, числа или кортежи, но не списки или словари. Неизменяемость гарантирует, что хеш-код ключа, вычисленный при вставке, останется тем же при последующем поиске. Если бы ключ мог меняться, его хеш-код изменился бы, и таблица не смогла бы найти элемент по новому хешу.
Хеш-таблица использует хеш-функцию для преобразования ключа в индекс массива. Если ключ изменяется, его хеш-код меняется, и элемент оказывается в неправильной ячейке. Это приводит к ошибкам поиска и нарушению целостности данных. Поэтому все популярные языки программирования требуют неизменяемости ключей.
# Корректные ключи: строки, числа, кортежи
my_dict = {
"name": "Alice",
42: "answer",
(1, 2): "tuple key"
}
# Некорректный ключ: список (изменяемый)
# my_dict[[1, 2]] = "error" # TypeError: unhashable type: 'list'
# Поиск по неизменяемому ключу работает
print(my_dict["name"]) # AliceНеизменяемость ключа — фундаментальное требование для работы хеш-таблицы. Оно обеспечивает стабильность хеш-кода и корректность операций вставки, поиска и удаления. При выборе ключей всегда используйте неизменяемые типы данных, чтобы избежать трудноуловимых ошибок.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
JavaScript
SQL
Ключевые слова
Подпишись на Python Developer в телеграм