Курс 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"
- Настройка вывода NumPy
- discard() — удаление элемента из множества
- Создание итератора
- Работа с кортежами в Python
- Хеширование паролей с использованием salt
- Наследование в программировании
- Обработка исключений в Python 3
- Управление пакетами с pip
- Метод __ilshift__ для битового сдвига влево
- Измерение времени выполнения кода с помощью time
- Ввод нескольких значений
- Метод join() с набором
- Тестирование с unittest
- Генераторы по генератору
- Введение в Python
- Поиск с помощью регулярных выражений
- Счетчик в Python: most_common()
- Создание тестовых данных с Faker
- Перевод текста с Python Translator
- Участие в сообществе @selectel
- Создание новых списков в Python
- Копирование и вставка текста в Python
- Хэш-функции в Python
- Управление контекстом выполнения
- Удаление дубликатов в pandas
- Встраивание HTML в Jupyter Notebook
- Операторы += в Python
- Форматирование объектов с модулем pprint
- Переменная с нижним подчеркиванием
- Работа с CSV в Python
- История Python
- Оформление кода по PEP 8
- Метод Self в Python
- Непрерывная проверка в Python
- Метод invert для побитового отрицания
- Определение наиболее частого элемента с помощью collections.Counter
- Декораторы в Python
- Многострочные комментарии в Python
- Копирование объектов в Python
- Преобразование букв в нижний регистр
- Измерение времени выполнения кода в Python
- Функции в одну строку
- Итерации в Python
- Сравнение def и lambda функций в Python
- Переворот строки с помощью срезов
- Python Enumerate
- Определение относительного пути
- Python-dateutil — работа с датами















