Курс 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"

  1. Работа с NumPy массивами
  2. Обработка ошибки IndexError
  3. Форматирование строк в Python
  4. Именование переменных в Python
  5. Очистка списка от False, None, 0, «»
  6. Объединение, распаковка и деструктуризация
  7. Вычисление времени выполнения
  8. Курсы Яндекс Практикум
  9. Удаление ключа из словаря в Python
  10. Игра Виселица на Python
  11. Множественное наследование в Python
  12. Подсчет частоты элементов с Counter
  13. Перегрузка операторов в Python
  14. Работа с срезами в Numpy
  15. Цикл for в Python
  16. Переопределение оператора % для объектов
  17. Модуль os: работа с файлами и папками
  18. Добавление цвета в консоли
  19. Сортировка в Python
  20. Иерархия классов в Python
  21. Python groupby() из itertools: работа с повторяющимися элементами
  22. Оптимизация гиперпараметров с Scikit Optimize
  23. Обмен данными с asyncio.Queue
  24. Генераторы списков в Python
  25. Пропуск строк в файле с itertools
  26. Переворот последовательности
  27. Создание циклической ссылки
  28. Оператор continue в Python
  29. Объединение списков с помощью zip
  30. Python-dateutil — работа с датами
  31. Регулярные выражения: метод match
  32. Реализация метода __abs__ в Python
  33. Функция product() в Python
  34. Проверка кортежей.
  35. Удаление файлов в Python
  36. Измерение времени выполнения в Python
  37. Проверка версии Python
  38. Работа с набором данных CIFAR10 в PyTorch
  39. Перевод двоичного кода в целое число
  40. Профилирование кода
  41. Улучшенные подсказки для импорта в Python 3.12
  42. Работа с пакетами
  43. Добавление вложенных списков
  44. Удаление специальных символов
  45. Python Поверхностное Копирование
  46. Python Ellipsis использование
  47. Измерение времени выполнения кода
  48. Назначение максимального и минимального значения переменной в Python.

Marketello читают маркетологи из крутых компаний