Есть пустой словарь groups = {}. Что произойдёт при выполнении groups.setdefault('RU', []).append(7)?
AБудет выброшено исключение
KeyError: ключа 'RU' нет в словаре и .append() не сможет работатьBМетод вернёт
None, и 7 не будет добавлен: ключ отсутствует и значение по умолчанию не записываетсяCМетод перезапишет существующее значение по
'RU' пустым списком, а затем добавит в него 7DМетод запишет ключ
'RU' со значением [], вернёт ссылку на этот список, и .append(7) добавит 7Правильный ответ. Метод
.setdefault(key, default) возвращает значение по ключу, а если ключа нет — записывает значение по умолчанию и возвращает его.Разбор
Вызов groups.setdefault('RU', []) проверяет наличие ключа 'RU'. Поскольку его нет, метод записывает 'RU': [] и возвращает ссылку на этот новый список. Затем .append(7) добавляет элемент в этот список. В итоге groups станет {'RU': [7]}. Если ключ уже существует, .setdefault() не перезаписывает значение, а просто возвращает текущее.
Проверь себя · 1/3разбор после ответа
Даны два словаря
d1 = {'a': 1, 'b': 2} и d2 = {'b': 3, 'c': 4}. Что вернёт выражение d1 | d2 в Python 3.9+?Ещё вопросы по теме «Коллекции и структуры данных»
- Есть список событий `events = ["click"]`. Объект `events` используется в нескольких местах по ссылке, поэтому важно изменить именно тот же объект (не создавать новый). Нужно добавить элементы из `new_events = ["view", "purchase"]`, чтобы итог был плоским. Какой вариант корректен?
- Дан словарь `d = {"country": "RU"}`. Нужно прочитать значение по ключу `"city"`, а если ключа нет — вернуть строку `"unknown"` без исключения. Что подходит?
- В логах есть список `user_ids` с повторениями. Как получить количество уникальных пользователей?
- Что произойдёт при выполнении кода `t = (1, 2); t[0] = 9`?
- Дан список `nums = [10, 20, 30, 40]`. Чему равен результат выражения `nums[1:3]`?
- Все вопросы по «Коллекции и структуры данных» →