Загружаем изображение…
Инициализация значений без if и лишней логики!
setdefault() возвращает текущее значение по ключу, а если ключ отсутствует, создаёт его с указанным дефолтом.Это удобно, когда нужно работать с накоплением данных, а не с проверками. Пример группировки значений:
groups = {}
groups.setdefault("admins", []).append("alice")
groups.setdefault("admins", []).append("bob")Результат:
{'admins': ['alice', 'bob']}Без setdefault() тот же код обычно выглядит так:
if "admins" not in groups:
groups["admins"] = []
groups["admins"].append("alice")setdefault() убирает условие и фиксирует инвариант: по этому ключу всегда лежит коллекция нужного типа.Подходит не только для списков, но и для счётчиков и агрегатов:
stats.setdefault(user_id, 0)
stats[user_id] += 1Пригодится везде, где словарь используется как аккумулятор данных: статистика, группировки, обработка событий, агрегации из API и БД.
Python Ready | #совет
Просмотры: 194