Дан код: ``python d = {'a': 1, 'b': 2} k = d.keys() d['c'] = 3 ` Что будет в k` после выполнения?

AВернёт dict_keys(['a', 'b']), потому что keys — это снимок на момент вызова
BВернёт пустой dict_keys([]), потому что словарь был изменён после вызова
CВыбросит RuntimeError, потому что словарь изменился после вызова .keys()
DВернёт dict_keys(['a', 'b', 'c']), потому что keys — это динамическое представление
Правильный ответ. .keys() возвращает динамическое представление (view), которое отражает текущее состояние словаря.

Разбор

Объект dict_keys, возвращаемый .keys(), не копирует ключи, а ссылается на сам словарь. Поэтому после добавления нового ключа 'c' представление k тоже покажет три ключа. То же самое касается .values() и .items(). Если нужен фиксированный снимок ключей, используйте list(d.keys()).

Проверь себя · 1/3разбор после ответа
Нужно сгруппировать пользователей по городу: для каждого города хранить список user_id. Используется defaultdict из модуля collections. Какой аргумент передать при создании?
Тренировать Python в Telegram

Ещё вопросы по теме «Коллекции и структуры данных»