Что выведет код Senior Типы, изменяемость и сравнение обновлено

Ключи 1, True и 1.0 в dict

Вопрос

Что выведет код? По строке на каждый print.

d = {}
d[1] = 'int'
d[True] = 'bool'
d[1.0] = 'float'
print(d)
print(len({0, False, 0.0, '', None}))

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: {1: 'float'}, 3. 1, True и 1.0 равны и имеют одинаковый хеш, поэтому это один ключ: сохраняется первый объект-ключ 1, а значение перезаписывается последним присваиванием.

Что выведет

{1: 'float'}
3

Разбор

1, True и 1.0 равны и имеют одинаковый хеш, поэтому это один ключ: сохраняется первый объект-ключ 1, а значение перезаписывается последним присваиванием. Во множестве 0, False и 0.0 тоже схлопываются в один элемент, '' и None остаются отдельными: всего 3.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме