Курс 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"
- Обработка ошибок ввода данных
- Управление асинхронными задачами с помощью Semaphore
- Работа с deque из collections
- Открытие и редактирование скриптов Python
- Тайное преобразование типа ключа
- Обработка ошибок в JSON данных
- Срез списка в Python
- Проверка подстроки в строке
- Округление дробей в Python
- Получение текущей даты и времени с помощью datetime
- Закрытие файла в Python
- Создание даты из строки ISO
- Проверка условий в Python
- Python: отличительная особенность — отступы
- Повторение элементов списков
- Получение ID текущего процесса
- Замыкания в Python
- Применение промокода в Много лосося
- Вывод переменной и строки в Python
- Функция print() — вывод информации
- Работа с YAML в Python: PyYAML.
- Объединение Python и Shell
- Лимиты на ресурсы Python
- Генераторы списков в Python
- Оператор walrus в Python
- Локальные переменные.
- Методы split() и join() — Python строк.
- Работа с itertools
- Функция findall() для поиска вхождений строки
- Прокачанный трейсинг ошибок
- Генераторы списков в Python
- Поиск индексов подстроки
- Обмен значений переменных в Python
- Проверка кортежей.
- Python: изменяемые и неизменяемые коллекции
- Работа с каталогами в Python
- Оптимизация гиперпараметров в Python
- Проверка элемента в множестве.
- Функции map, filter и reduce
- Метод __iand__ для пользовательских классов
- Обход словаря в Python
- SciPy: широкий функционал для математических операций
- Очистка строки в Python
- Профилирование кода
- Многострочные комментарии в Python
- Декораторы в Python
- Преобразование Word в PDF с Spire.Doc















