set.discard()
Метод discard() удаляет указанный элемент из множества. В отличие от remove(), если элемента нет — ничего не происходит, исключение не возникает.
Сигнатура
set.discard(elem)
Параметры
elem— элемент, который нужно удалить. Должен быть хешируемым.
Возвращаемое значение
None. Метод модифицирует множество на месте.
Примеры использования
Пример 1. Удаление существующего элемента.
pins = {2, 3, 4, 5}
pins.discard(3)
print(pins)
{2, 4, 5}
Пример 2. Удаление отсутствующего элемента.
pins = {2, 3, 4}
pins.discard(99)
print(pins)
{2, 3, 4}
Пример 3. Сравнение с remove().
s = {1, 2, 3}
s.discard(10)
print("discard прошёл без ошибки:", s)
try:
s.remove(10)
except KeyError as e:
print("remove вызвал KeyError:", e)
discard прошёл без ошибки: {1, 2, 3}
remove вызвал KeyError: 10
Пример 4. Безопасная фильтрация.
blacklist = {"spam", "ads", "promo"}
incoming = ["news", "spam", "weather", "promo"]
for msg in incoming:
if msg in blacklist:
print(f"Блок: {msg}")
for tag in incoming:
blacklist.discard(tag)
print("Осталось в чёрном списке:", blacklist)
Блок: spam
Блок: promo
Осталось в чёрном списке: {'ads'}
Пример 5. Возвращает None.
s = {1, 2}
print(s.discard(1))
None
См. также
set.remove() — удаление с ошибкой при отсутствии
set.pop() — удаление произвольного элемента
set.clear() — удаление всех элементов
Примечание
Лицензия и источники
Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.