Курс 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"
- Переопределение метода __floordiv__
- Функции в Python: создание и вызов
- Concrete Paths — метод .with_suffix()
- Копирование в Python
- Работа с itertools
- Чтение бинарного файла в Python.
- Удаление элементов из списка
- Списковые включения в Python
- Python 3.12: переиспользование кавычек
- Разбиение строки в Python
- Непрерывная проверка в Python
- Работа с timedelta в Python
- Изменение списка срезом
- Оператор zip в Python
- Построение графиков в Matplotlib
- Подробная информация о %pinfo
- Работа с временем в Python
- Нарезка списков в Python
- Изменение логики работы с временем
- Безопасный доступ к значениям словаря
- Логирование с Loguru
- Декоратор total_ordering для сравнения объектов
- Модуль subprocess: запуск внешних команд
- Определение имен функций
- Проверка на истинность объектов в Python
- Функция zip() — объединение последовательностей
- Структуры данных в Python
- Транспонирование 2D-массива с помощью zip
- Обработка StopIteration в Python
- Проблемы с dict в Python
- Обновление данных через PUT запрос
- Печать календаря
- Установка random seed в Python
- Декораторы в Python
- Выключение компьютера с помощью Python
- Подсчет элементов в списке с Counter
- Функции высшего порядка в Python
- Возврат нескольких значений
- Создание списка через цикл
- Срезы в Python
- Метод enumerate() в Python
- Проверка однородности элементов списка
- Копирование словарей и списков в Python
- Создание и обучение модели с Keras
- Управление асинхронными задачами на Python.
- Защита данных в Python
- Метод join() для объединения элементов в строку.
- Обезопасьте ввод данных















