← Все вопросы

Как аккуратно получить значение из словаря, если ключа может не быть?

Задан 2 дня назад2 просмотров2 ответа
5

Обращаюсь к d[key] и иногда ловлю KeyError. Как читать значение с дефолтом и не засорять код проверками if key in d?

2 ответа

6
✓ Принятый ответ — помог автору

Используй d.get(key, default) — вернёт default, если ключа нет, без исключения. А если нужно накапливать (например, считать частоты) — посмотри dict.setdefault или collections.defaultdict.

3

Для счётчиков ещё есть collections.Counter — буквально создан для подсчёта элементов.

Олег Захаров Counter сильно сокращает код, рекомендую. · вчера

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект