Курс 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. Переопределение метода __floordiv__
  2. Функции в Python: создание и вызов
  3. Concrete Paths — метод .with_suffix()
  4. Копирование в Python
  5. Работа с itertools
  6. Чтение бинарного файла в Python.
  7. Удаление элементов из списка
  8. Списковые включения в Python
  9. Python 3.12: переиспользование кавычек
  10. Разбиение строки в Python
  11. Непрерывная проверка в Python
  12. Работа с timedelta в Python
  13. Изменение списка срезом
  14. Оператор zip в Python
  15. Построение графиков в Matplotlib
  16. Подробная информация о %pinfo
  17. Работа с временем в Python
  18. Нарезка списков в Python
  19. Изменение логики работы с временем
  20. Безопасный доступ к значениям словаря
  21. Логирование с Loguru
  22. Декоратор total_ordering для сравнения объектов
  23. Модуль subprocess: запуск внешних команд
  24. Определение имен функций
  25. Проверка на истинность объектов в Python
  26. Функция zip() — объединение последовательностей
  27. Структуры данных в Python
  28. Транспонирование 2D-массива с помощью zip
  29. Обработка StopIteration в Python
  30. Проблемы с dict в Python
  31. Обновление данных через PUT запрос
  32. Печать календаря
  33. Установка random seed в Python
  34. Декораторы в Python
  35. Выключение компьютера с помощью Python
  36. Подсчет элементов в списке с Counter
  37. Функции высшего порядка в Python
  38. Возврат нескольких значений
  39. Создание списка через цикл
  40. Срезы в Python
  41. Метод enumerate() в Python
  42. Проверка однородности элементов списка
  43. Копирование словарей и списков в Python
  44. Создание и обучение модели с Keras
  45. Управление асинхронными задачами на Python.
  46. Защита данных в Python
  47. Метод join() для объединения элементов в строку.
  48. Обезопасьте ввод данных

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