Курс 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"
- Работа с NumPy массивами
- Обработка ошибки IndexError
- Форматирование строк в Python
- Именование переменных в Python
- Очистка списка от False, None, 0, «»
- Объединение, распаковка и деструктуризация
- Вычисление времени выполнения
- Курсы Яндекс Практикум
- Удаление ключа из словаря в Python
- Игра Виселица на Python
- Множественное наследование в Python
- Подсчет частоты элементов с Counter
- Перегрузка операторов в Python
- Работа с срезами в Numpy
- Цикл for в Python
- Переопределение оператора % для объектов
- Модуль os: работа с файлами и папками
- Добавление цвета в консоли
- Сортировка в Python
- Иерархия классов в Python
- Python groupby() из itertools: работа с повторяющимися элементами
- Оптимизация гиперпараметров с Scikit Optimize
- Обмен данными с asyncio.Queue
- Генераторы списков в Python
- Пропуск строк в файле с itertools
- Переворот последовательности
- Создание циклической ссылки
- Оператор continue в Python
- Объединение списков с помощью zip
- Python-dateutil — работа с датами
- Регулярные выражения: метод match
- Реализация метода __abs__ в Python
- Функция product() в Python
- Проверка кортежей.
- Удаление файлов в Python
- Измерение времени выполнения в Python
- Проверка версии Python
- Работа с набором данных CIFAR10 в PyTorch
- Перевод двоичного кода в целое число
- Профилирование кода
- Улучшенные подсказки для импорта в Python 3.12
- Работа с пакетами
- Добавление вложенных списков
- Удаление специальных символов
- Python Поверхностное Копирование
- Python Ellipsis использование
- Измерение времени выполнения кода
- Назначение максимального и минимального значения переменной в Python.















