Курс 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. Flask — веб-фреймворк Python
  2. Поиск всех индексов подстроки
  3. Проверка версии Python
  4. Конкатенация строк с помощью join()
  5. Функции all() и any() в Python
  6. Аннотации типов в Python
  7. Класс Counter() для подсчета элементов
  8. Monkey Patching в Python
  9. Python и Юникод: работа с цифрами
  10. Доступ к локальным переменным
  11. Асинхронное программирование с asyncio
  12. Разделение строки на пары ключ-значение.
  13. Поиск простых чисел
  14. Поиск подстроки в строке
  15. Обработка ошибок в JSON данных
  16. Настройка вывода в Numpy
  17. Получение ID процесса
  18. Комментарии в Python
  19. Импорт в Python: список all
  20. Модуль os: работа с файлами и папками
  21. Инверсия списка и строки в Python
  22. Лямбда-функции для min/max
  23. Python Поверхностное Копирование
  24. Concrete Paths — метод .with_suffix()
  25. Удаление ресурса в Python
  26. Операторы объединения в Python 3.9
  27. Использование html-скриптов в Jupyter Notebook
  28. Объединение словарей в Python
  29. Итераторы в Python
  30. f-строки в формате строк
  31. Применение функции к элементам списка
  32. Уникальные значения из списка
  33. Объединение множеств в Python
  34. Сохранение и загрузка модели в PyTorch
  35. Методы в Python
  36. Итерация по итерируемым объектам
  37. Сохранение Unicode в JSON
  38. Преобразование многоуровневого словаря
  39. Измерение времени выполнения кода
  40. Проверка вхождения подстроки
  41. Работа с аргументами командной строки
  42. Логирование с Loguru
  43. Навыки Python: строки, типы данных
  44. Принципы программирования
  45. Объединение объектов в Python

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