Есть пустой словарь groups = {}. Что произойдёт при выполнении groups.setdefault('RU', []).append(7)?

AДобавит ключ 'RU' со значением [], затем добавит 7 в этот список
BПерезапишет значение ключа 'RU' пустым списком, а потом добавит 7
CВыбросит KeyError, потому что ключа 'RU' ещё нет в словаре
DВернёт None, а 7 не будет добавлен, потому что ключ отсутствует
Правильный ответ. .setdefault(key, default) возвращает значение по ключу, а если ключа нет — записывает default и возвращает его.

Разбор

Вызов groups.setdefault('RU', []) проверяет наличие ключа 'RU'. Поскольку его нет, метод записывает 'RU': [] и возвращает ссылку на этот новый список. Затем .append(7) добавляет элемент в этот список. В итоге groups станет {'RU': [7]}. Если ключ уже существует, .setdefault() не перезаписывает значение, а просто возвращает текущее.

Проверь себя · 1/3разбор после ответа
Есть список событий events = ["click"]. Список events используется в нескольких местах по ссылке, поэтому важно изменить именно тот же объект (не создавать новый). Нужно добавить элементы из new_events = ["view", "purchase"], чтобы итог был плоским. Какой вариант корректен?
Тренировать Python в Telegram

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