Курс 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. Переменные класса и экземпляра
  2. Добавление Progressbar в Python
  3. Генератор данных в Keras
  4. Python OrderedDict и fromkeys() — работа с словарями
  5. Настройка Cron
  6. Обработка исключений в Python 3
  7. Преобразование кортежа в словарь.
  8. Разделение списка на гнппы
  9. Управление пакетами с pip
  10. Объединение списков в Python
  11. Декоратор Property в Python
  12. Функция с **kwargs в Python
  13. Установка библиотек в Python
  14. Блок else в циклах.
  15. Преобразование регистра строк
  16. Метод classmethod
  17. Модуль itertools: комбинации и перестановки
  18. Python: отсутствие точек с запятыми
  19. Инициализация структур данных
  20. Обработка StopIteration в Python
  21. Работа с переменными в Python
  22. Измерение времени выполнения кода
  23. None в Python: использование и особенности
  24. Функции-генераторы в Python
  25. Python union() функция — объединение множеств
  26. Операторы объединения в Python 3.9
  27. Добавление элемента к кортежу
  28. Асинхронный код в Python
  29. Отправка POST-запроса в REST API
  30. Лямбда-функции в Python
  31. Форматирование строк в Python
  32. Комментарии в Python
  33. Объединение, распаковка и деструктуризация
  34. Создание списков в Python
  35. Получение списка кортежей из словаря
  36. Метод invert для побитового отрицания
  37. UserList в Python: Описание и примеры использования
  38. Модуль subprocess: запуск внешних команд
  39. Использование модуля math
  40. Отладка утечек памяти в Python
  41. Использование *args
  42. Метод __call__ в Python
  43. Получение ID процесса
  44. Python 3.12: переиспользование кавычек
  45. Codecademy в Telegram
  46. Оператор @ для умножения матриц

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