Курс 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"
- Вывод баннеров
- Изучение объектов с помощью dir()
- Создание таблиц в Python с PrettyTable
- Фильтрация последовательности
- Python: возвращение нескольких значений
- Python Enumerate
- Работа со строками в Python
- Ключевое слово global в Python
- Обработка исключений в Python
- Основные операции с Numpy
- Создание треугольника Паскаля
- Проблема сравнения словарей
- Оператор assert в Python
- Проверка наличия элемента в списке
- Управление импортом в Python
- Работа с кортежами
- Срезы в Numpy
- CLI-инструмент howdoi
- Реализация операции -= для пользовательского класса
- Ошибка NotImplemented в Python
- Сортировка в Python
- Возврат нескольких значений
- Python Метод sleep() из time
- Проверка кортежей.
- Сортировка слиянием
- Работа с itertools
- Форматирование заголовков в Python
- Виртуальное окружение Python
- Слияние словарей в Python 3.9
- Получение текущей директории
- Имена объектов в Python
- Функции в одну строку
- Руководство по библиотеке pydantic
- Основные операции с библиотекой Numpy
- Конструктор в Python
- Поиск email
- Методы и функции в Python
- Работа с путями в Python
- Retrying в Python: повторные вызовы
- Преобразование списка в словарь через генератор
- Поиск файлов по шаблону
- Работа с JSON данными в Python
- Метод join() для объединения строк
- Работа с defaultdictами в Python
- Управление памятью в Python
- Капитализация строк
- Установка User-Agent в Python















