Курс 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. Работа с JSON в Python
  2. Функции any() и all() в Python
  3. Генераторы и сеты в Python
  4. Функции в Python
  5. Переопределение унарных операторов
  6. Базовые объекты Python
  7. Объединение списков в строку
  8. Возврат нескольких значений
  9. Пространство имен в Python
  10. Управление фоновыми задачами в Python
  11. Сортировка и разворот списка
  12. Фильтрация списка от «ложных» значений
  13. Оператор обр. импликации
  14. Генераторы в Python
  15. Инверсия списка и строки в Python
  16. Запуск внешних программ с subprocess
  17. Установка и использование howdoi
  18. Получение локальных переменных в Python
  19. Метод index() в Python
  20. Оператор * в Python
  21. Непрерывная проверка в Python
  22. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  23. Обмен значений переменных в Python
  24. Печать календаря в Python
  25. Работа с IP-адресами в Python
  26. Счетчик в Python: most_common()
  27. Просмотр внешних файлов в %pycat
  28. JMESPath в Python
  29. Удаление файлов с shutil.os.remove()
  30. Создание новых списков в Python
  31. F-строки в Python
  32. Функция map() и ленивая оценка
  33. Преобразование в float
  34. Модуль os: работа с файлами и папками
  35. Парсинг веб-страниц с Beautiful Soup
  36. Создание и использование ChainMap
  37. Преобразование символов с помощью map
  38. Руководство по Pymorphy2
  39. Работа со строками
  40. Декораторы в Python
  41. Тип CodeType в Python.
  42. Проблемы с именами переменных
  43. Функция enumerate в Python
  44. Генерация строк с .join()
  45. Перевод эмодзи и эмотиконов.
  46. Подсказки типов в Python
  47. Переменная Шредингера

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