Курс 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
- Установка Home Assistant
- Defaultdict в Python
- Логирование в Python
- Модуль os: работа с файлами и папками
- Работа с библиотекой xkcd
- Транспонирование 2D-массива с помощью zip
- Документирование функций в Python
- Руководство по Pymorphy2
- Декораторы в Python
- Создание детектора плагиата
- Метод __index__ в Python
- Установка и обучение ChatterBot
- Создание новых списков
- Добавление элементов в список
- Использование обратной косой черты в f-строках
- Оператор * в Python
- Логический оператор «and» в Python
- Библиотека itertools: объединение списков
- Установка и использование Telegram API в Python
- Функция с **kwargs в Python
- Работа с модулем cmath
- Изменение логики работы с временем
- Объединение словарей в Python
- Функции высшего порядка в Python
- Разработка игры Pong с turtle
- Форматирование строк в Python
- Извлечение аудио из видео
- Использование подчеркивания в REPL
- Работа с deque из collections
- Транспонирование 2D-массива с помощью zip
- Создание лямбда-функций
- Пропуск строк в файле с itertools
- Генераторы и сеты в Python
- Работа с типами данных в Python с помощью pydantic.
- Concrete Paths в Python
- Генераторы в Python
- Оператор == в Python
- Генераторы в Python
- Умножение строк и списков
- Подсказки типов в Python
- Проверка окончания строки с помощью str.endswith()
- Запуск внешних программ с subprocess
- Python: Фильтрация списков с помощью filter()
- Объединение словарей в Python
- Применение функции к элементам списка
- Работа с URL-адресами в Python















