Есть множество s = {"a", "b"}. Нужно удалить элемент "c", если он есть, и не получать ошибку, если его нет. Какой способ корректен?

As.remove("c")
Bdel s["c"]
Cs.discard("c")
Ds.pop("c")
Правильный ответ. .discard() удаляет элемент без ошибки, даже если элемента нет.

Разбор

Метод .remove("c") выбросит KeyError, если элемента нет. .discard("c") безопасен: он удалит элемент при наличии и ничего не сделает при отсутствии. У set нет индексации, поэтому del s["c"] не работает. .pop() у set не принимает аргумент и удаляет произвольный элемент.

Проверь себя · 1/3разбор после ответа
Дан список nums = [10, 20, 1, 30]. Чем отличаются nums.remove(1) и del nums[1]?
Тренировать Python в Telegram

Ещё вопросы по теме «Коллекции и структуры данных»