Курс 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. Преобразование строки в число
  4. Функции с необязательными аргументами
  5. Модуль inspect
  6. Модуль subprocess: запуск внешних команд
  7. Работа с NumPy массивами
  8. Работа с zip-архивами в Python
  9. Форматирование данных с помощью pprint
  10. Срез в Python
  11. Работа с очередями в Python
  12. globals и locals
  13. Разделение функций на этапы
  14. Обновление множества в Python
  15. Многострочные комментарии в Python
  16. Многоточие в Python
  17. Возвращение нескольких значений через кортеж или класс
  18. Enum в Python
  19. Группы исключений в Python
  20. Сравнение строк в Python
  21. Генераторы данных
  22. Расширение информации об ошибке в Python
  23. Генераторы в Python
  24. Ускоренный импорт библиотек
  25. Переворот строки с использованием цикла
  26. Работа со стеком в Python
  27. Работа с комплексными числами
  28. Иерархия классов в Python
  29. Функции map, filter и reduce
  30. Базовые объекты Python
  31. Сокращение ссылок с pyshorteners
  32. Изменения в обработке логических значений
  33. Оптимизация строк в Python
  34. Генераторы в Python
  35. Извлечение статей с newspaper3k
  36. Pillow: работа с изображениями
  37. Работа с Requests для HTTP-запросов
  38. Генераторы в Python
  39. Сглаживание списка
  40. Анализ текста на русском языке с помощью Pymystem3
  41. Работа с датами в Python
  42. Установка максимального количества цифр
  43. Метод title() в Python
  44. Объединение словарей в Python
  45. Преобразование в float

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