Курс 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"
- Работа с JSON в Python
- Функции any() и all() в Python
- Генераторы и сеты в Python
- Функции в Python
- Переопределение унарных операторов
- Базовые объекты Python
- Объединение списков в строку
- Возврат нескольких значений
- Пространство имен в Python
- Управление фоновыми задачами в Python
- Сортировка и разворот списка
- Фильтрация списка от «ложных» значений
- Оператор обр. импликации
- Генераторы в Python
- Инверсия списка и строки в Python
- Запуск внешних программ с subprocess
- Установка и использование howdoi
- Получение локальных переменных в Python
- Метод index() в Python
- Оператор * в Python
- Непрерывная проверка в Python
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Обмен значений переменных в Python
- Печать календаря в Python
- Работа с IP-адресами в Python
- Счетчик в Python: most_common()
- Просмотр внешних файлов в %pycat
- JMESPath в Python
- Удаление файлов с shutil.os.remove()
- Создание новых списков в Python
- F-строки в Python
- Функция map() и ленивая оценка
- Преобразование в float
- Модуль os: работа с файлами и папками
- Парсинг веб-страниц с Beautiful Soup
- Создание и использование ChainMap
- Преобразование символов с помощью map
- Руководство по Pymorphy2
- Работа со строками
- Декораторы в Python
- Тип CodeType в Python.
- Проблемы с именами переменных
- Функция enumerate в Python
- Генерация строк с .join()
- Перевод эмодзи и эмотиконов.
- Подсказки типов в Python
- Переменная Шредингера















