Курс 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
- Преобразование строки в число
- Функции с необязательными аргументами
- Модуль inspect
- Модуль subprocess: запуск внешних команд
- Работа с NumPy массивами
- Работа с zip-архивами в Python
- Форматирование данных с помощью pprint
- Срез в Python
- Работа с очередями в Python
- globals и locals
- Разделение функций на этапы
- Обновление множества в Python
- Многострочные комментарии в Python
- Многоточие в Python
- Возвращение нескольких значений через кортеж или класс
- Enum в Python
- Группы исключений в Python
- Сравнение строк в Python
- Генераторы данных
- Расширение информации об ошибке в Python
- Генераторы в Python
- Ускоренный импорт библиотек
- Переворот строки с использованием цикла
- Работа со стеком в Python
- Работа с комплексными числами
- Иерархия классов в Python
- Функции map, filter и reduce
- Базовые объекты Python
- Сокращение ссылок с pyshorteners
- Изменения в обработке логических значений
- Оптимизация строк в Python
- Генераторы в Python
- Извлечение статей с newspaper3k
- Pillow: работа с изображениями
- Работа с Requests для HTTP-запросов
- Генераторы в Python
- Сглаживание списка
- Анализ текста на русском языке с помощью Pymystem3
- Работа с датами в Python
- Установка максимального количества цифр
- Метод title() в Python
- Объединение словарей в Python
- Преобразование в float















