Будет выведено {1: 'c'}. Ключи 1, True и 1.0 равны и имеют одинаковый хеш, поэтому это одна запись; значение последовательно заменяется на 'b', затем на 'c'.
Как Python обрабатывает дублирующиеся ключи в словаре
Будет выведено {1: 'c'}. Ключи 1, True и 1.0 равны и имеют одинаковый хеш, поэтому это одна запись; значение последовательно заменяется на 'b', затем на 'c'.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какое значение будет выведено при печати словаря, в котором присутствуют ключи, считающиеся одинаковыми по правилам сравнения.
d = {1: 'a', True: 'b', 1.0: 'c'}
print(d)
Ответ
Будет выведено {1: 'c'}. Ключи 1, True и 1.0 равны и имеют одинаковый хеш, поэтому это одна запись; значение последовательно заменяется на 'b', затем на 'c'.
При создании словаря пары обрабатываются слева направо. Первый ключ 1 создаёт запись. Следующие ключи не создают новые записи, а обновляют значение существующего равного ключа.
print(len(d)) # 1
print(d[1]) # c
print(d[True]) # c
print(d[1.0]) # c
В данном словаре сохраняется первый объект ключа, поэтому отображается 1. Если различие типов имеет смысл для задачи, используйте составные ключи (type(value), value).