← Все вопросы
Чем d.pop(k) отличается от del d[k]?
12
Оба удаляют ключ из словаря. В каких случаях между ними реальная разница и что выбрать?
3 ответа
26
✓ Принятый ответ — помог автору
Главных отличий два:
popВОЗВРАЩАЕТ удалённое значение,del— нет (это инструкция, не выражение).- У
popесть второй аргумент-дефолт:d.pop(k, None)не упадёт, если ключа нет. Аdel d[k]на отсутствующем ключе всегда кидаетKeyError.
v = d.pop("a") # удалили и забрали значение
d.pop("missing", 0) # ключа нет — вернёт 0, не упадёт
del d["a"] # просто удалить, без значения
Итого: нужно значение или защита от отсутствия ключа — pop. Просто стереть существующий ключ — del чуть короче.
8
pop отдаёт значение и умеет дефолт, del — нет.
-5
Разницы почти нет, бери любой.
Арина Борисова Разница есть: del без ключа падает KeyError, а pop с дефолтом — нет. И pop возвращает значение. · 10 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.