Курс 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. Функция map() в Python
  5. Управление IP-адресами через прокси
  6. Работа с функцией next() в Python
  7. Класс UserDict: дополнительная функциональность
  8. Замена элементов в списке с помощью генераторов списков
  9. Основные методы NumPy
  10. Метод join() для объединения элементов строки
  11. Анализ кода — Python
  12. Особенности множеств в Python
  13. Оператор объединения словарей
  14. Нарезка списков в Python
  15. Генераторы в Python
  16. Defaultdict в Python
  17. Python Enumerate
  18. Метод округления чисел
  19. split() — разделение строки
  20. Добавление Progressbar в Python
  21. Форматирование строк в Python.
  22. Декоратор проверки активности
  23. Проверка типов с помощью isinstance
  24. TypedDict для kwargs в Python 3.12
  25. Метод split() для разделения строк
  26. Сортировка в Python
  27. Функция zip() для объединения списков
  28. Область видимости переменных
  29. Работа с изменяемыми списками
  30. Преобразование типов данных в set comprehension
  31. Частичное совпадение ввода
  32. Сохранение и загрузка модели в PyTorch
  33. Получение пути к текущему скрипту с помощью os
  34. Профилирование кода на Python
  35. Ограничение ресурсов в Python
  36. Пересечение списков с использованием множеств
  37. Подсчет элементов в Python
  38. Оформление кода по PEP 8
  39. Создание множества в Python
  40. Метод join для наборов
  41. Функция zip() — объединение последовательностей
  42. Функция zip() в Python
  43. Возврат нескольких значений
  44. Область видимости переменных
  45. Решатель судоку на Python с pygame
  46. Роль object и type в Python

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