Курс 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. Лямбда-функции в defaultdict
  4. Объединение списков с использованием itertools.chain
  5. Форматирование строк в Python
  6. Транспонирование матрицы в Python
  7. Возвращение нескольких значений
  8. Проектирование Singleton с метаклассом
  9. Работа с парами ключ-значение
  10. Замена подстроки
  11. Основы работы с базами данных в Python
  12. Метод lt для сортировки объектов
  13. Перебор элементов списка в Python
  14. Отправка поздравлений по дню рождения
  15. Метод init в Python
  16. Оптимизация гиперпараметров в Python
  17. Разделение строк в Python
  18. Курс по дообучению ChatGPT
  19. Глобальные переменные в Python
  20. Python reversed() vs срез[::-1]
  21. Переопределение метода divmod
  22. Настройка логгера Logzero
  23. Дизассемблирование Python кода
  24. Генераторы в Python
  25. Python 3.12: переиспользование кавычек
  26. Извлечение данных из JSON
  27. Закрытие файла в Python
  28. Метод join для наборов
  29. Оператор (*) в Python
  30. Python Метод sleep() времени
  31. Получение текущей даты в Python
  32. Реверс строки и списка в Python.
  33. Поиск email
  34. Документирование функций в Python
  35. split() без разделителя
  36. Сравнение def и lambda в Python
  37. Работа с collections в Python.
  38. Метод Event.wait() в Python
  39. Безопасный доступ к значениям словаря
  40. Преобразование многоуровневого словаря
  41. Использование модуля __future__
  42. Добавление элемента к кортежу
  43. Проверка существования переменной с оператором :=
  44. Запуск файлового сервера
  45. Модуль subprocess: запуск внешних команд
  46. Оптимизация сравнения в Python

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