Что выведет код 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 ошибок.