Выбор ответа Junior Стандартная библиотека обновлено
defaultdict и setdefault
Вопрос
Чем defaultdict(list) удобнее d.setdefault(k, []).append(x)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Не создаёт пустой список-кандидат на каждом обращении. setdefault(k, []) на каждом вызове создаёт новый пустой список, даже если ключ уже есть, и выглядит громоздко. defaultdict вызывает фабрику только для отсутствующего ключа.
Варианты ответа
- Не создаёт пустой список-кандидат на каждом обращенииправильный ответ
- Только
defaultdictсохраняет порядок вставки ключей setdefaultне работает со списками, только со строкамиdefaultdictпотокобезопасен, а обычныйdictнет
Разбор
setdefault(k, []) на каждом вызове создаёт новый пустой список, даже если ключ уже есть, и выглядит громоздко. defaultdict вызывает фабрику только для отсутствующего ключа. Порядок вставки сохраняют оба, setdefault прекрасно работает со списками, а потокобезопасность у них одинаковая.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.