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.