07 Июл 2023
1 мин
873

Удаление всех вхождений значения из списка в Python

Одна из распространенных задач при работе со списками в Python — это удаление определенного значения. Встроенный метод remove() позволяет удалить первое

Содержание

Одна из распространенных задач при работе со списками в Python — это удаление определенного значения. Встроенный метод remove() позволяет удалить первое вхождение указанного значения. Однако, что если требуется удалить все вхождения этого значения?

Рассмотрим пример. Допустим, есть список чисел:

numbers = [1, 2, 3, 4, 2, 2, 3]

Цель — удалить все вхождения числа 2. Если применить метод remove(), результат будет следующим:

numbers.remove(2)
print(numbers)  # Вывод: [1, 3, 4, 2, 2, 3]

Как видно, удалено только первое вхождение числа 2. Чтобы удалить все вхождения, потребуется использовать цикл или генератор списка.

Решение с использованием цикла

numbers = [1, 2, 3, 4, 2, 2, 3]
value_to_remove = 2

while value_to_remove in numbers:
    numbers.remove(value_to_remove)

print(numbers)  # Вывод: [1, 3, 4, 3]

Цикл продолжается, пока значение для удаления присутствует в списке. На каждой итерации удаляется одно вхождение.

Решение с использованием генератора списка

numbers = [1, 2, 3, 4, 2, 2, 3]
value_to_remove = 2

numbers = [x for x in numbers if x != value_to_remove]

print(numbers)  # Вывод: [1, 3, 4, 3]

С помощью генератора списка создается новый список, который содержит только те элементы исходного списка, которые не равны значению для удаления.

Оба этих способа позволяют удалить все вхождения заданного значения из списка в Python.

Содержание

Добавить комментарий

Определи профессию по рисунку