Курс Python → Хешируемые ключи в Python
Для того чтобы понять, как объекты становятся ключами словаря в Python, необходимо разобраться в понятии хеширования. Хеширование — это процесс преобразования данных произвольной длины в строку фиксированной длины. Ключи словаря должны быть хешируемыми, то есть иметь неизменяемое состояние, чтобы быть уникальными и идентифицируемыми при доступе к ним в словаре.
Одним из примеров нехешируемого объекта является кортеж, содержащий в себе неизменяемый объект, например, список. Поскольку список изменяемый, то и сам кортеж, содержащий список, становится нехешируемым. Поэтому такой кортеж не может быть использован в качестве ключа в словаре, так как ключи должны быть хешируемыми.
# Пример использования кортежа в качестве ключа словаря
my_dict = {(1, 2): 'значение'}
print(my_dict[(1, 2)]) # 'значение'
# Нехешируемый объект в кортеже
my_dict = {([1, 2], 3): 'значение'} # Ошибка TypeError
Если необходимо использовать изменяемые объекты в качестве ключей словаря, можно воспользоваться другим типом данных, например, использовать словарь в качестве ключа. В этом случае необходимо быть осторожным при изменении значений ключа в словаре, чтобы не нарушить его уникальность и хешируемость.
Итак, для того, чтобы объект мог быть ключом словаря в Python, он должен быть хешируемым, то есть иметь неизменяемое состояние. При использовании кортежей в качестве ключей, убедитесь, что все элементы кортежа также являются хешируемыми объектами, чтобы избежать ошибок при работе со словарем.
Другие уроки курса "Python"
- Преобразование Excel в PDF с Spire.XLS
- Отладчик pdb: начало работы
- Сравнение объектов в Python
- Преобразование объекта в строку
- Установка пакета в Python
- Блок try…finally в Python
- Управление контекстом выполнения кода
- Оболочка Python
- Обучение модели с указанием эпох
- Форматирование даты с strftime()
- Операторы увеличения и уменьшения переменной
- Удаление дубликатов из списка с помощью dict.fromkeys
- Оптимизация памяти в Python
- Вычисление логарифмов в Python
- Контроль точности вывода чисел
- Хранение переменных в Python.
- Объединение списков в Python
- Работа с getopt
- Инициализация объекта
- Конкатенация строк в Python
- Создание графики с черепахой
- Python OrderedDict и fromkeys() — работа с словарями
- Тестирование функции сложения
- Оператор in в Python
- Анонимные функции в Python
- Списковое включение в Python
- Colorama: окрашивание текста в Python
- Определение наиболее частого элемента с помощью collections.Counter
- Работа с Event() в threading
- Замер времени выполнения кода
- Работа с очередями в Python
- Функции с необязательными аргументами
- inspect в Python: анализ кода
- Передача параметров в Python
- Форматирование чисел в Python
- Работа с CSV в Python
- Обход элементов в Python
- Инвертирование словаря
- Комплексные числа в Python
- Python Translator: создание локальных переводчиков
- Карта бомбоубежищ в Москве и Питере
- Преобразование строк в числа с плавающей запятой
- Создание словаря с значением по умолчанию
- Конкатенация строк с помощью join()
- Поиск анаграмм с Counter
- Базовые объекты Python
- Векторизация в Python с NumPy.
- Python Ellipsis использование
- Работа с комбинациями в Python.















