Курс 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. Defaultdict в Python
  2. Работа с изменяемыми списками
  3. Перевод эмодзи и эмотиконов.
  4. Метод join() для объединения элементов строки
  5. Python groupby() из itertools: работа с повторяющимися элементами
  6. Списки в Python: основы
  7. Преобразование данных в Python
  8. Капитализация строк
  9. Проверка класса объекта
  10. Работа с collections в Python
  11. Введение в Python
  12. Создание уникального множества
  13. Создание уникального проекта
  14. Работа с модулем random
  15. Сортировка HTML-элементов
  16. Освобождение памяти в Python
  17. Операторы сравнения в Python
  18. Генерация чисел с range()
  19. Рациональные числа в Python
  20. Преобразование чисел в восьмеричную строку
  21. Библиотека Rich: форматирование текста
  22. Метод __irshift__ для Python
  23. Создание спинбокса в tkinter
  24. Python enumerate() для работы с индексами
  25. Генераторы в Python
  26. Построение графиков в Matplotlib
  27. Работа с CSV файлами в Python
  28. Модуль future Python
  29. Контекстный менеджер в Python
  30. Метод rsub в Python: расширение функциональности вычитания
  31. Управление мышью и клавиатурой с Pyautogui
  32. Проблема с изменяемыми аргументами
  33. Вставка переменных в шаблоны Flask
  34. Логические операторы в Python
  35. Отслеживание прогресса с tqdm
  36. Создание новых функций с помощью functools.partial
  37. Установка максимального количества цифр
  38. Метод split() в Python
  39. Генераторы в Python
  40. Объединение списков с использованием itertools.chain
  41. Python и Юникод: работа с цифрами
  42. Декораторы в Python
  43. Python Менеджер контекста
  44. Отношения подклассов в Python
  45. Python: Фильтрация списков с помощью filter()
  46. CSV строка разделение в Python

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