Курс 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. Получение локальных переменных в Python
  2. Установка Home Assistant
  3. Defaultdict в Python
  4. Логирование в Python
  5. Модуль os: работа с файлами и папками
  6. Работа с библиотекой xkcd
  7. Транспонирование 2D-массива с помощью zip
  8. Документирование функций в Python
  9. Руководство по Pymorphy2
  10. Декораторы в Python
  11. Создание детектора плагиата
  12. Метод __index__ в Python
  13. Установка и обучение ChatterBot
  14. Создание новых списков
  15. Добавление элементов в список
  16. Использование обратной косой черты в f-строках
  17. Оператор * в Python
  18. Логический оператор «and» в Python
  19. Библиотека itertools: объединение списков
  20. Установка и использование Telegram API в Python
  21. Функция с **kwargs в Python
  22. Работа с модулем cmath
  23. Изменение логики работы с временем
  24. Объединение словарей в Python
  25. Функции высшего порядка в Python
  26. Разработка игры Pong с turtle
  27. Форматирование строк в Python
  28. Извлечение аудио из видео
  29. Использование подчеркивания в REPL
  30. Работа с deque из collections
  31. Транспонирование 2D-массива с помощью zip
  32. Создание лямбда-функций
  33. Пропуск строк в файле с itertools
  34. Генераторы и сеты в Python
  35. Работа с типами данных в Python с помощью pydantic.
  36. Concrete Paths в Python
  37. Генераторы в Python
  38. Оператор == в Python
  39. Генераторы в Python
  40. Умножение строк и списков
  41. Подсказки типов в Python
  42. Проверка окончания строки с помощью str.endswith()
  43. Запуск внешних программ с subprocess
  44. Python: Фильтрация списков с помощью filter()
  45. Объединение словарей в Python
  46. Применение функции к элементам списка
  47. Работа с URL-адресами в Python

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