Курс 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"
- Defaultdict в Python
- Область видимости переменных
- Проверка наличия элемента в списке
- Функция map() в Python
- Управление IP-адресами через прокси
- Работа с функцией next() в Python
- Класс UserDict: дополнительная функциональность
- Замена элементов в списке с помощью генераторов списков
- Основные методы NumPy
- Метод join() для объединения элементов строки
- Анализ кода — Python
- Особенности множеств в Python
- Оператор объединения словарей
- Нарезка списков в Python
- Генераторы в Python
- Defaultdict в Python
- Python Enumerate
- Метод округления чисел
- split() — разделение строки
- Добавление Progressbar в Python
- Форматирование строк в Python.
- Декоратор проверки активности
- Проверка типов с помощью isinstance
- TypedDict для kwargs в Python 3.12
- Метод split() для разделения строк
- Сортировка в Python
- Функция zip() для объединения списков
- Область видимости переменных
- Работа с изменяемыми списками
- Преобразование типов данных в set comprehension
- Частичное совпадение ввода
- Сохранение и загрузка модели в PyTorch
- Получение пути к текущему скрипту с помощью os
- Профилирование кода на Python
- Ограничение ресурсов в Python
- Пересечение списков с использованием множеств
- Подсчет элементов в Python
- Оформление кода по PEP 8
- Создание множества в Python
- Метод join для наборов
- Функция zip() — объединение последовательностей
- Функция zip() в Python
- Возврат нескольких значений
- Область видимости переменных
- Решатель судоку на Python с pygame
- Роль object и type в Python















