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

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

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


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

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

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

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

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

Автор урока

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

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

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

  1. Слияние словарей в Python 3.9
  2. Оператор in для Python
  3. Расчет времени выполнения программы
  4. Непрерывная проверка в Python
  5. Активация Matplotlib в Jupyter
  6. Функция map() и ленивая оценка
  7. Удаление символа из строки
  8. Создание комплексных чисел
  9. Очистка вывода в Python
  10. Переменные в Python: сокращение гласных
  11. Перевод текста с Python Translator
  12. Применение функции map() с лямбда-функциями
  13. Ввод нескольких значений
  14. Поиск индекса элемента в списке
  15. Упрощение работы с JSON-данными в Python
  16. Вызов функций по строке в Python.
  17. Основы Python
  18. Поиск самого длинного слова в списке с использованием max()
  19. Парсинг веб-страниц с Beautiful Soup
  20. Создание копии списка в Python
  21. Python Поверхностное Копирование
  22. Работа с комплексными числами
  23. Python Метод sleep() из time
  24. Равенство и идентичность в Python
  25. Создание функций с произвольным количеством аргументов
  26. Экспорт функций в Python
  27. Работа с YAML в Python
  28. Очистка данных с помощью pandas
  29. Управление мышью и клавиатурой с Pyautogui
  30. Python: динамическая типизация и проверка типов
  31. Создание словаря в Python
  32. Python Ellipsis использование
  33. Создание и использование ChainMap
  34. Создание пар из последовательностей
  35. Работа с контекст-менеджером «with»
  36. Резервирование символов в Python
  37. Объединение словарей в Python
  38. Участие в сообществе @selectel
  39. Генераторные выражения и islice.
  40. Преобразование Word в PDF с Spire.Doc
  41. Получение списка файлов в директории с использованием os
  42. Виртуальное окружение Python
  43. Метод pos в Python
  44. Удаление дубликатов из списка с помощью dict.fromkeys
  45. Создание новых списков

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