Курс 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"
- Переменные класса и экземпляра
- Добавление Progressbar в Python
- Генератор данных в Keras
- Python OrderedDict и fromkeys() — работа с словарями
- Настройка Cron
- Обработка исключений в Python 3
- Преобразование кортежа в словарь.
- Разделение списка на гнппы
- Управление пакетами с pip
- Объединение списков в Python
- Декоратор Property в Python
- Функция с **kwargs в Python
- Установка библиотек в Python
- Блок else в циклах.
- Преобразование регистра строк
- Метод classmethod
- Модуль itertools: комбинации и перестановки
- Python: отсутствие точек с запятыми
- Инициализация структур данных
- Обработка StopIteration в Python
- Работа с переменными в Python
- Измерение времени выполнения кода
- None в Python: использование и особенности
- Функции-генераторы в Python
- Python union() функция — объединение множеств
- Операторы объединения в Python 3.9
- Добавление элемента к кортежу
- Асинхронный код в Python
- Отправка POST-запроса в REST API
- Лямбда-функции в Python
- Форматирование строк в Python
- Комментарии в Python
- Объединение, распаковка и деструктуризация
- Создание списков в Python
- Получение списка кортежей из словаря
- Метод invert для побитового отрицания
- UserList в Python: Описание и примеры использования
- Модуль subprocess: запуск внешних команд
- Использование модуля math
- Отладка утечек памяти в Python
- Использование *args
- Метод __call__ в Python
- Получение ID процесса
- Python 3.12: переиспользование кавычек
- Codecademy в Telegram
- Оператор @ для умножения матриц















