🛠 setdefault() vs defaultdict: в чём разница
Работаете со словарями в Python? Тогда важно понимать:
🔵 setdefault()
— Позволяет получить значение по ключу или сразу создать его, если ключа нет.
d = {}
d.setdefault('key', []).append(1)
# d = {'key': [1]}
Но каждый раз нужно писать setdefault вручную ➡️ дольше и местами грязнее.
🔵 defaultdict
— Автоматически создаёт значение при обращении к отсутствующему ключу.
from collections import defaultdict
d = defaultdict(list)
d['key'].append(1)
# d = {'key': [1]}
Чище код, удобнее для вложенных структур и подсчётов.
➡️ Итог:
— Для разовых случаев норм setdefault.
— Для чистого и масштабируемого кода — defaultdict без вопросов.
Азбука айтишника #ликбез