Вступить в клуб →
средняявопросХеш-таблицы, словари и множества

defaultdict внутри проверки: почему словарь растёт от одних только чтений

Код считает граф смежности и потом проверяет наличие соседей:

from collections import defaultdict

graph = defaultdict(list)
graph["a"].append("b")

for node in ["a", "c", "d"]:
    if graph[node]:
        print(node, "has neighbours")

print(len(graph), "c" in graph)

Что напечатает последняя строка?

  • `3 True` — обращение `graph[node]` создало записи для отсутствующих ключей
  • `1 False` — чтение не меняет словарь, фабрика вызывается только при явном присваивании
  • `3 False` — записи создались, но оператор `in` у defaultdict не видит пустые значения
  • `1 True` — записи не создались, но `in` возвращает True для любого ключа, ведь фабрика умеет его создать

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела