Курс Python → Хешируемые ключи в Python

Для того чтобы понять, как объекты становятся ключами словаря в Python, необходимо разобраться в понятии хеширования. Хеширование — это процесс преобразования данных произвольной длины в строку фиксированной длины. Ключи словаря должны быть хешируемыми, то есть иметь неизменяемое состояние, чтобы быть уникальными и идентифицируемыми при доступе к ним в словаре.

Одним из примеров нехешируемого объекта является кортеж, содержащий в себе неизменяемый объект, например, список. Поскольку список изменяемый, то и сам кортеж, содержащий список, становится нехешируемым. Поэтому такой кортеж не может быть использован в качестве ключа в словаре, так как ключи должны быть хешируемыми.


# Пример использования кортежа в качестве ключа словаря
my_dict = {(1, 2): 'значение'}
print(my_dict[(1, 2)])  # 'значение'

# Нехешируемый объект в кортеже
my_dict = {([1, 2], 3): 'значение'}  # Ошибка TypeError

Если необходимо использовать изменяемые объекты в качестве ключей словаря, можно воспользоваться другим типом данных, например, использовать словарь в качестве ключа. В этом случае необходимо быть осторожным при изменении значений ключа в словаре, чтобы не нарушить его уникальность и хешируемость.

Итак, для того, чтобы объект мог быть ключом словаря в Python, он должен быть хешируемым, то есть иметь неизменяемое состояние. При использовании кортежей в качестве ключей, убедитесь, что все элементы кортежа также являются хешируемыми объектами, чтобы избежать ошибок при работе со словарем.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Изменение списка срезами
  2. Форматирование строк в Python.
  3. Цикл for в Python
  4. Ускорение кода с помощью векторизации
  5. Управление асинхронными задачами с помощью Semaphore
  6. Создание циклической ссылки
  7. Срезы в Python
  8. Python Enum Weekday Usage
  9. Логические значения в Python
  10. Игра «Угадывание чисел»
  11. Удаление дубликатов в pandas
  12. Работа с аргументами командной строки
  13. Управление сессиями в Python
  14. Поиск частых элементов в списке
  15. Создание уникального множества
  16. Работа со словарями с defaultdict из collections
  17. Декораторы в Python
  18. Сортировка HTML по CSS-селектору
  19. Создание вкладок с TKinter
  20. Активация Matplotlib в Jupyter
  21. Обработка данных в Python
  22. Создание словаря через dict comprehension
  23. Работа с парами ключ-значение
  24. Удаление дубликатов из списка
  25. Переменные в Python: сокращение гласных
  26. Преобразование кортежа в словарь.
  27. Перевод текста с Python Translator
  28. Ветвление выражения в Python
  29. Измерение времени выполнения кода
  30. Удаление дубликатов из списка
  31. Гибкие функции Python
  32. Python itertools combinations() — группировка элементов
  33. Функция enumerate() в Python
  34. Работа с утверждениями в Python
  35. Сортировка элементов в Python
  36. Функции min(), max(), sum()
  37. Форматирование даты с strftime()
  38. Поиск элементов BeautifulSoup
  39. Нарезка списков в Python
  40. Функции all() и any() в Python
  41. Проверка запуска скрипта или импорта модуля
  42. Условные выражения в Python
  43. ChainMap избыточные ключи
  44. Итераторы с потерямиZIP

Marketello читают маркетологи из крутых компаний