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