Курс 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"
- Обработка StopIteration в Python
- Декораторы в Python
- Копирование и вставка текста в Python
- Путь к интерпретатору Python
- Работа с модулем random
- Python Метод sleep() из time
- Добавление вложенных списков
- F-строки в Python
- Работа со строками в Python
- Срезы в Python
- Логирование с Logzero
- Виртуальное окружение Python
- Лямбда-функции для min/max
- Вложенные функции в Python
- Monkey Patching в Python
- Установка Python — Простое руководство
- Работа с пользовательским вводом
- Форматирование вывода с F-строками
- Операции с кортежами
- Сумма элементов списка
- Модуль antigravity: генерация координат
- Python: Фильтрация списков с помощью filter()
- Сериализация и десериализация объектов
- Настройка Cron
- Декоратор Property в Python
- Функции с дополнением
- Автоматизация скриптов на AWS Lightsail.
- Проектирование Singleton с метаклассом
- Работа с CSV файлами в Python
- Определение имен функций
- Применение промокода в Много лосося
- Множественные конструкторы в Python
- Транспонирование 2D-массива с помощью zip
- Изменяемые и неизменяемые объекты
- Расчет времени выполнения
- Работа с парами ключ-значение
- Solidity для DeFi Ethereum
- Работа с Telegram API на Python
- Метод join() для объединения строк
- Работа с изменяемыми списками
- Измерение потребления памяти при сортировке
- Абстракции словарей и множеств в Python
- Работа со случайными элементами
- Решение переменной Шредингера
- Отправка POST-запроса в REST API
- Фильтрация списка чисел
- Оператор walrus в Python















