Курс 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
- Работа с изменяемыми списками
- Перевод эмодзи и эмотиконов.
- Метод join() для объединения элементов строки
- Python groupby() из itertools: работа с повторяющимися элементами
- Списки в Python: основы
- Преобразование данных в Python
- Капитализация строк
- Проверка класса объекта
- Работа с collections в Python
- Введение в Python
- Создание уникального множества
- Создание уникального проекта
- Работа с модулем random
- Сортировка HTML-элементов
- Освобождение памяти в Python
- Операторы сравнения в Python
- Генерация чисел с range()
- Рациональные числа в Python
- Преобразование чисел в восьмеричную строку
- Библиотека Rich: форматирование текста
- Метод __irshift__ для Python
- Создание спинбокса в tkinter
- Python enumerate() для работы с индексами
- Генераторы в Python
- Построение графиков в Matplotlib
- Работа с CSV файлами в Python
- Модуль future Python
- Контекстный менеджер в Python
- Метод rsub в Python: расширение функциональности вычитания
- Управление мышью и клавиатурой с Pyautogui
- Проблема с изменяемыми аргументами
- Вставка переменных в шаблоны Flask
- Логические операторы в Python
- Отслеживание прогресса с tqdm
- Создание новых функций с помощью functools.partial
- Установка максимального количества цифр
- Метод split() в Python
- Генераторы в Python
- Объединение списков с использованием itertools.chain
- Python и Юникод: работа с цифрами
- Декораторы в Python
- Python Менеджер контекста
- Отношения подклассов в Python
- Python: Фильтрация списков с помощью filter()
- CSV строка разделение в Python















