Русский
Открыть в Telegram

Пост 🔑 Использование объектов в качестве ключей словаря в Python

23 июля 2026
Б
Библиотека Python разработчика | Книги по питону
🔑 Использование объектов в качестве ключей словаря в Python В Python вы можете использовать любой объект в качестве ключа словаря, если он реализует метод __hash__. Этот метод возвращает целое число, но при этом важно соблюдать одно ключевое требование: равные объекты должны иметь одинаковый хэш (обратное утверждение необязательно). 👉 Не используйте изменяемые объекты в качестве ключей! Если объект изменяется после добавления в словарь, он становится "невидимым" для поиска, так как его хэш может измениться. 🌀 Странность с отрицательными хэшами Есть интересная особенность, которая может вас удивить при отладке или написании юнит-тестов. Рассмотрим следующий пример: class A: def __init__(self, x): self.x = x def __hash__(self): return self.x Результаты хэширования экземпляров класса: >>> hash(A(2)) 2 >>> hash(A(1)) 1 >>> hash(A(0)) 0 >>> hash(A(-1)) # внимание! -2 >>> hash(A(-2)) -2 💡 В CPython значение -1 зарезервировано для внутренних ошибок. Если хэш-значение равно -1, интерпретатор автоматически преобразует его в -2. Это может вызывать неожиданные проблемы при сравнении или использовании объектов в качестве ключей. 📲 Мы в MAX 👉@BookPython
2 · 1.2K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуМодуль multiprocessing в Python: потоки против процессов Модуль multiprocessing позволяет создавать не только процессы, но и потоки. Однако стоит помнить о главББиблиотека Python разработчика | Книги по питону📌 О представлении данных в байтах в Python Когда мы храним данные в памяти или на устройстве хранения, их необходимо представить в виде байтов. Python позволяет
это сообщение
ББиблиотека Python разработчика | Книги по питону🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv BashББиблиотека Python разработчика | Книги по питонуМетод format в Python для строк — мощный инструмент, поддерживающий множество возможностей, о которых вы, возможно, даже не знали. Каждый заменяемый плейсхолдер
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 954подписчиков552средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем