Курс 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"
- Flask — веб-фреймворк Python
- Поиск всех индексов подстроки
- Проверка версии Python
- Конкатенация строк с помощью join()
- Функции all() и any() в Python
- Аннотации типов в Python
- Класс Counter() для подсчета элементов
- Monkey Patching в Python
- Python и Юникод: работа с цифрами
- Доступ к локальным переменным
- Асинхронное программирование с asyncio
- Разделение строки на пары ключ-значение.
- Поиск простых чисел
- Поиск подстроки в строке
- Обработка ошибок в JSON данных
- Настройка вывода в Numpy
- Получение ID процесса
- Комментарии в Python
- Импорт в Python: список all
- Модуль os: работа с файлами и папками
- Инверсия списка и строки в Python
- Лямбда-функции для min/max
- Python Поверхностное Копирование
- Concrete Paths — метод .with_suffix()
- Удаление ресурса в Python
- Операторы объединения в Python 3.9
- Использование html-скриптов в Jupyter Notebook
- Объединение словарей в Python
- Итераторы в Python
- f-строки в формате строк
- Применение функции к элементам списка
- Уникальные значения из списка
- Объединение множеств в Python
- Сохранение и загрузка модели в PyTorch
- Методы в Python
- Итерация по итерируемым объектам
- Сохранение Unicode в JSON
- Преобразование многоуровневого словаря
- Измерение времени выполнения кода
- Проверка вхождения подстроки
- Работа с аргументами командной строки
- Логирование с Loguru
- Навыки Python: строки, типы данных
- Принципы программирования
- Объединение объектов в Python















