Курс Python → Уникальность ключей в словаре
В Python уникальность ключей в словаре определяется эквивалентностью, а не идентичностью. Это означает, что даже если два объекта разных типов равны друг другу, они не могут быть использованы в качестве ключей в словаре или множестве одновременно. Например, числа 5, 5.0 и 5 + 0j являются различными объектами разных типов, но они равны друг другу. Поэтому, если вы попытаетесь добавить их в словарь как ключи, только один из них будет сохранен, а остальные будут игнорироваться.
Когда вы пытаетесь найти значение по ключу в словаре, Python сначала проверяет эквивалентность ключей, а затем только идентичность. Это означает, что если вы используете ключ, который эквивалентен уже существующему ключу в словаре, но не идентичен ему, то Python найдет значение, связанное с существующим ключом, а не с новым. Это поведение позволяет избежать ошибок KeyError в случае использования эквивалентных ключей.
Пример кода:
my_dict = {5: 'пять', 5.0: 'пять', 5 + 0j: 'пять'}
print(my_dict) # Выведет: {5: 'пять'}
print(my_dict[5]) # Выведет: 'пять'
print(my_dict[5.0]) # Выведет: 'пять'
print(my_dict[5 + 0j]) # Выведет: 'пять'
В этом примере мы создаем словарь, в котором ключами являются различные объекты, но они эквивалентны друг другу. При обращении к словарю по любому из ключей, Python находит значение, связанное с первым ключом (5), так как все остальные ключи эквивалентны ему. Это демонстрирует, что в Python уникальность ключей в словаре определяется их эквивалентностью, а не идентичностью.
Другие уроки курса "Python"
- Списки в Python: синтаксис представления
- Замыкания в Python
- Форматирование строк в Python.
- Проверка ввода с помощью isdigit
- Метод join() с набором
- Работа с базами данных SQLite
- Использование подчеркивания в REPL
- ChainMap.new_child() — добавление нового словаря
- Хэш-функции в Python
- Основы работы со списками
- Протокол управления контекстом
- Сглаживание списка
- Переопределение метода __eq__
- Декораторы в Python
- Установка Home Assistant
- Python enumerate() функции
- Создание словарей в Python
- Отладка утечек памяти в Python
- Python UserString — создание подклассов строк
- Метод gt в Python
- Управление памятью в Python
- Переопределение метода __lshift__
- *args и **kwargs в Python
- Генераторы в Python
- Progress с библиотекой tqdm
- Python: цикл for и оператор присваивания
- Counter() — подсчет элементов
- Множественные конструкторы в Python
- Создание новых функций с помощью functools.partial
- Управление виртуальными средами в Python
- Деление в Python
- Проблемы с именами переменных
- Порядок и длина множеств в Python
- Метод setdefault() в Python
- Работа с дробями в Python
- Просмотр файла в Jupyter Noteboo
- Транспонирование 2D-массива с помощью zip
- Генерация QR-кодов с библиотекой qrcode
- Создание пар из последовательностей
- Defaultdict в Python
- Обработка ошибок ввода данных
- Переменная Шредингера
- Экспорт данных с помощью writefile
- Обновление ключей в Python
- Преобразование чисел в Python















