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

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

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


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

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

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

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

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

Автор урока

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

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

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

  1. Преобразование вложенного списка
  2. Декоратор Ajax required
  3. Создание словарей с defaultdict
  4. Создание циклической ссылки
  5. Обработка ошибок ввода данных
  6. Работа с JSON в Python
  7. Принцип одной функции
  8. Комментарии в Python
  9. Работа с Path в Python
  10. Декораторы с аргументами в Python
  11. Работа с argparse
  12. Запуск Python из интерпретатора
  13. Сортировка в Python
  14. Проверка ввода с помощью isdigit
  15. Именование столбцов в Python с pandas
  16. Python Метод sleep() из time
  17. Декоратор проверки активности
  18. Функция all() в Python
  19. Сортировка элементов с OrderedDict
  20. Enum в Python
  21. Проверка памяти объекта
  22. Преобразование Excel в PDF с Spire.XLS
  23. Измерение потребления памяти при сортировке
  24. Метод hash в Python
  25. Сериализация объектов в Python
  26. Декораторы в Python
  27. Установка библиотек в Python
  28. Потоковый ввод в Python
  29. Вывод с переменной через запятую
  30. Принципы программирования
  31. Переменная с нижним подчеркиванием
  32. Создание списка дат
  33. Эффективная конкатенация строк с использованием join()
  34. Определение размера папок в Python
  35. Работа с CSV файлами в Python
  36. Работа с YAML в Python: PyYAML.
  37. Переменная Шредингера
  38. Многострочные комментарии в Python
  39. Работа с NumPy
  40. Создание класса очереди
  41. Операторы увеличения и уменьшения переменной
  42. Расширение информации об ошибке в Python
  43. Локальные переменные.
  44. Функции высшего порядка в Python
  45. Цепные операции в Python
  46. Отступы в Python
  47. Умножение строк и списков

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