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

As.remove("c"): удаляет элемент по значению или выбрасывает исключение при его отсутствии
Bs.discard("c"): удаляет элемент по значению или ничего не делает при его отсутствии
Cdel s["c"]: удаление по ключу как у словаря, синтаксис применим к dict и list
Ds.pop("c"): метод .pop() у множества аргументов не принимает и удаляет случайный элемент
Правильный ответ. У множества .discard() удаляет элемент без ошибки, даже если элемента нет.

Разбор

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

Проверь себя · 1/3разбор после ответа
Есть словарь config = {'timeout': 10, 'retries': 3}. Что произойдёт при вызове config.pop('timeout', None)?
Тренировать Python в Telegram

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