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

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

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


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

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

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

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

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

Автор урока

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

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

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

  1. Работа с множествами в Python
  2. Работа с Colorama
  3. Определение функций с необязательными аргументами
  4. Новшества Flask 2.0
  5. Получение срезов итераторов
  6. Подробная информация о %pinfo
  7. Методы обработки строк в Python
  8. Работа с путями в Python
  9. Python Метод Union Множеств
  10. Многопроцессорное программирование в Python
  11. Функции с необязательными аргументами
  12. Навыки Python: строки, типы данных
  13. Методы в Python
  14. Преобразование Word в PDF с Spire.Doc
  15. Управление мышью и клавиатурой с Pyautogui
  16. Передача аргументов в Python
  17. Исправление ошибки NameError
  18. Поиск самого длинного слова в списке с использованием max()
  19. Генераторы в Python
  20. Преобразование данных в Python
  21. Принципы LSP и ISP в Python
  22. capitalize() — изменение регистра первого символа строки
  23. Удаление элемента по индексу
  24. Создание вкладок с TKinter
  25. Преобразование чисел в слова
  26. Операции с датами в Python
  27. Установка и использование Python-dateutil
  28. Обработка аргументов Python
  29. Управление браузером с Selenium
  30. Проверка кортежей.
  31. Передача неизвестных аргументов в Python.
  32. Особенности ключей словаря в Python
  33. Обратный список чисел
  34. Сравнение def и lambda-функций
  35. Модуль xkcd: добавление юмора в Python
  36. Защита данных в Python
  37. Ввод нескольких значений
  38. Добавление Progressbar в Python
  39. Область видимости переменных
  40. Создание панели меню Tkinter
  41. Использование функции enumerate()
  42. Установка Home Assistant
  43. Python Ellipsis использование
  44. Форматирование строк в Python

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