Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Вопрос по функции discard в питоне: для чего она и как работает?

  1. Вопрос по функции discard в питоне: для чего она и как работает?

    Привет, ребята! Кто может объяснить, как работает функция discard в Питоне? В каких случаях её лучше использовать и чем она отличается от других методов удаления элементов из множества? Буду признателен за примеры кода, чтобы лучше понять.



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Функция discard используется для удаления элемента из множества. Если элемент отсутствует, ошибки не будет, что удобно. Вот пример:

    Программный код:
    my_set = {123}
    my_set.discard(2)
    print(
    my_set)  # {1, 3}
    my_set.discard(4)
    print(
    my_set)  # {1, 3} 
    Для сравнения, метод remove вызовет ошибку, если элемент отсутствует.

  4. Цитата Сообщение от Елена Александровна
    Привет! Функция discard используется для удаления элемента из множества. Если элемент отсутствует, ошибки не будет, что удобно. Вот пример:

    Программный код:
    my_set = {123}
    my_set.discard(2)
    print(
    my_set)  # {1, 3}
    my_set.discard(4)
    print(
    my_set)  # {1, 3} 
    Для сравнения, метод remove вызовет ошибку, если элемент отсутствует.
    О, это хороший подход, меньше шансов нарваться на исключение. Спасибо за пример, стало понятнее!

  5. Я обычно использую discard в случаях, когда мне не нужно проверять наличие элемента перед удалением. Это экономит время и код строки. Например:

    Программный код:
    my_set = {'a''b''c'}
    my_set.discard('d')  # Никаких ошибок, просто продолжаем.
    print(my_set)  # {'a', 'c'} 

  6. Цитата Сообщение от LightningCentaur
    Я обычно использую discard в случаях, когда мне не нужно проверять наличие элемента перед удалением. Это экономит время и код строки. Например:

    Программный код:
    my_set = {'a''b''c'}
    my_set.discard('d')  # Никаких ошибок, просто продолжаем.
    print(my_set)  # {'a', 'c'} 
    Это точно! Меньше кода и меньше головной боли с обработкой исключений.

  7. Фишка discard в том, что он молча проходит, если элемента нет. remove может иногда быть полезен, чтобы словить ошибку, если что-то пошло не так. Вот пример отличия:

    Программный код:
    nums = {123}
    nums.discard(4)  # Не ошибка
    nums.remove(4)  # KeyError: 4 

  8. Цитата Сообщение от Сергей Игнатов
    Фишка discard в том, что он молча проходит, если элемента нет. remove может иногда быть полезен, чтобы словить ошибку, если что-то пошло не так. Вот пример отличия:

    Программный код:
    nums = {123}
    nums.discard(4)  # Не ошибка
    nums.remove(4)  # KeyError: 4 
    Верно подмечено! Всё зависит от того, нужен ли тебе контроль и обработка ошибок.

  9. Хей! В дополнение к предыдущим ответам, иногда полезно знать, что discard работает чуть быстрее, так как не нужно вызывать исключение. Это может иметь значение, если оперировать большим числом элементов. Для примера:

    Программный код:
    import time

    large_set 
    set(range(1000000))
    start time.time()
    large_set.discard(999999)
    end time.time()
    print(
    f"Discard took {end - start} seconds"

  10. Цитата Сообщение от MaxWind
    Хей! В дополнение к предыдущим ответам, иногда полезно знать, что discard работает чуть быстрее, так как не нужно вызывать исключение. Это может иметь значение, если оперировать большим числом элементов. Для примера:

    Программный код:
    import time

    large_set 
    set(range(1000000))
    start time.time()
    large_set.discard(999999)
    end time.time()
    print(
    f"Discard took {end - start} seconds"
    О, круто! Я как-то не задумывался об оптимизации с этой точки зрения. Наглядный пример.

Страница 1 из 2 12 ПоследняяПоследняя