Курс Python → Хешируемые ключи в Python
Для того чтобы понять, как объекты становятся ключами словаря в Python, необходимо разобраться в понятии хеширования. Хеширование — это процесс преобразования данных произвольной длины в строку фиксированной длины. Ключи словаря должны быть хешируемыми, то есть иметь неизменяемое состояние, чтобы быть уникальными и идентифицируемыми при доступе к ним в словаре.
Одним из примеров нехешируемого объекта является кортеж, содержащий в себе неизменяемый объект, например, список. Поскольку список изменяемый, то и сам кортеж, содержащий список, становится нехешируемым. Поэтому такой кортеж не может быть использован в качестве ключа в словаре, так как ключи должны быть хешируемыми.
# Пример использования кортежа в качестве ключа словаря
my_dict = {(1, 2): 'значение'}
print(my_dict[(1, 2)]) # 'значение'
# Нехешируемый объект в кортеже
my_dict = {([1, 2], 3): 'значение'} # Ошибка TypeError
Если необходимо использовать изменяемые объекты в качестве ключей словаря, можно воспользоваться другим типом данных, например, использовать словарь в качестве ключа. В этом случае необходимо быть осторожным при изменении значений ключа в словаре, чтобы не нарушить его уникальность и хешируемость.
Итак, для того, чтобы объект мог быть ключом словаря в Python, он должен быть хешируемым, то есть иметь неизменяемое состояние. При использовании кортежей в качестве ключей, убедитесь, что все элементы кортежа также являются хешируемыми объектами, чтобы избежать ошибок при работе со словарем.
Другие уроки курса "Python"
- Слияние словарей в Python 3.9
- Оператор in для Python
- Расчет времени выполнения программы
- Непрерывная проверка в Python
- Активация Matplotlib в Jupyter
- Функция map() и ленивая оценка
- Удаление символа из строки
- Создание комплексных чисел
- Очистка вывода в Python
- Переменные в Python: сокращение гласных
- Перевод текста с Python Translator
- Применение функции map() с лямбда-функциями
- Ввод нескольких значений
- Поиск индекса элемента в списке
- Упрощение работы с JSON-данными в Python
- Вызов функций по строке в Python.
- Основы Python
- Поиск самого длинного слова в списке с использованием max()
- Парсинг веб-страниц с Beautiful Soup
- Создание копии списка в Python
- Python Поверхностное Копирование
- Работа с комплексными числами
- Python Метод sleep() из time
- Равенство и идентичность в Python
- Создание функций с произвольным количеством аргументов
- Экспорт функций в Python
- Работа с YAML в Python
- Очистка данных с помощью pandas
- Управление мышью и клавиатурой с Pyautogui
- Python: динамическая типизация и проверка типов
- Создание словаря в Python
- Python Ellipsis использование
- Создание и использование ChainMap
- Создание пар из последовательностей
- Работа с контекст-менеджером «with»
- Резервирование символов в Python
- Объединение словарей в Python
- Участие в сообществе @selectel
- Генераторные выражения и islice.
- Преобразование Word в PDF с Spire.Doc
- Получение списка файлов в директории с использованием os
- Виртуальное окружение Python
- Метод pos в Python
- Удаление дубликатов из списка с помощью dict.fromkeys
- Создание новых списков















