Загружаем изображение…

Инициализация значений без 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
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти