Курс 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. Замыкания в Python
  3. Форматирование строк в Python.
  4. Проверка ввода с помощью isdigit
  5. Метод join() с набором
  6. Работа с базами данных SQLite
  7. Использование подчеркивания в REPL
  8. ChainMap.new_child() — добавление нового словаря
  9. Хэш-функции в Python
  10. Основы работы со списками
  11. Протокол управления контекстом
  12. Сглаживание списка
  13. Переопределение метода __eq__
  14. Декораторы в Python
  15. Установка Home Assistant
  16. Python enumerate() функции
  17. Создание словарей в Python
  18. Отладка утечек памяти в Python
  19. Python UserString — создание подклассов строк
  20. Метод gt в Python
  21. Управление памятью в Python
  22. Переопределение метода __lshift__
  23. *args и **kwargs в Python
  24. Генераторы в Python
  25. Progress с библиотекой tqdm
  26. Python: цикл for и оператор присваивания
  27. Counter() — подсчет элементов
  28. Множественные конструкторы в Python
  29. Создание новых функций с помощью functools.partial
  30. Управление виртуальными средами в Python
  31. Деление в Python
  32. Проблемы с именами переменных
  33. Порядок и длина множеств в Python
  34. Метод setdefault() в Python
  35. Работа с дробями в Python
  36. Просмотр файла в Jupyter Noteboo
  37. Транспонирование 2D-массива с помощью zip
  38. Генерация QR-кодов с библиотекой qrcode
  39. Создание пар из последовательностей
  40. Defaultdict в Python
  41. Обработка ошибок ввода данных
  42. Переменная Шредингера
  43. Экспорт данных с помощью writefile
  44. Обновление ключей в Python
  45. Преобразование чисел в Python

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