Выбор ответа Senior Коллекции обновлено
Представления dict.keys()
Вопрос
Что выведет код?
d = {'a': 1}
ks = d.keys()
d['b'] = 2
print(ks)
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: dictkeys(['a', 'b']). d.keys() возвращает не копию, а живое представление (view), которое отражает текущее состояние словаря.
Варианты ответа
['a'],keys()вернул копию['a', 'b']RuntimeError: словарь изменёнdict_keys(['a', 'b'])правильный ответ
Разбор
d.keys() возвращает не копию, а живое представление (view), которое отражает текущее состояние словаря. После добавления b оно покажет оба ключа, а печатается как dict_keys([...]). Ошибки нет, потому что нет итерации в момент изменения. Чтобы зафиксировать ключи, делают list(d).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.