Курс Python → Хешируемые ключи в Python
Для того чтобы понять, как объекты становятся ключами словаря в Python, необходимо разобраться в понятии хеширования. Хеширование — это процесс преобразования данных произвольной длины в строку фиксированной длины. Ключи словаря должны быть хешируемыми, то есть иметь неизменяемое состояние, чтобы быть уникальными и идентифицируемыми при доступе к ним в словаре.
Одним из примеров нехешируемого объекта является кортеж, содержащий в себе неизменяемый объект, например, список. Поскольку список изменяемый, то и сам кортеж, содержащий список, становится нехешируемым. Поэтому такой кортеж не может быть использован в качестве ключа в словаре, так как ключи должны быть хешируемыми.
# Пример использования кортежа в качестве ключа словаря
my_dict = {(1, 2): 'значение'}
print(my_dict[(1, 2)]) # 'значение'
# Нехешируемый объект в кортеже
my_dict = {([1, 2], 3): 'значение'} # Ошибка TypeError
Если необходимо использовать изменяемые объекты в качестве ключей словаря, можно воспользоваться другим типом данных, например, использовать словарь в качестве ключа. В этом случае необходимо быть осторожным при изменении значений ключа в словаре, чтобы не нарушить его уникальность и хешируемость.
Итак, для того, чтобы объект мог быть ключом словаря в Python, он должен быть хешируемым, то есть иметь неизменяемое состояние. При использовании кортежей в качестве ключей, убедитесь, что все элементы кортежа также являются хешируемыми объектами, чтобы избежать ошибок при работе со словарем.
Другие уроки курса "Python"
- Изменение списка срезами
- Форматирование строк в Python.
- Цикл for в Python
- Ускорение кода с помощью векторизации
- Управление асинхронными задачами с помощью Semaphore
- Создание циклической ссылки
- Срезы в Python
- Python Enum Weekday Usage
- Логические значения в Python
- Игра «Угадывание чисел»
- Удаление дубликатов в pandas
- Работа с аргументами командной строки
- Управление сессиями в Python
- Поиск частых элементов в списке
- Создание уникального множества
- Работа со словарями с defaultdict из collections
- Декораторы в Python
- Сортировка HTML по CSS-селектору
- Создание вкладок с TKinter
- Активация Matplotlib в Jupyter
- Обработка данных в Python
- Создание словаря через dict comprehension
- Работа с парами ключ-значение
- Удаление дубликатов из списка
- Переменные в Python: сокращение гласных
- Преобразование кортежа в словарь.
- Перевод текста с Python Translator
- Ветвление выражения в Python
- Измерение времени выполнения кода
- Удаление дубликатов из списка
- Гибкие функции Python
- Python itertools combinations() — группировка элементов
- Функция enumerate() в Python
- Работа с утверждениями в Python
- Сортировка элементов в Python
- Функции min(), max(), sum()
- Форматирование даты с strftime()
- Поиск элементов BeautifulSoup
- Нарезка списков в Python
- Функции all() и any() в Python
- Проверка запуска скрипта или импорта модуля
- Условные выражения в Python
- ChainMap избыточные ключи
- Итераторы с потерямиZIP















