Иногда, когда вы работаете со списками в Python, вам может потребоваться удалить элементы с определенным значением. В этом руководстве мы узнаем, как удалить из списка все элементы, имеющие заданное значение.
Есть много способов удалить все элементы с определенным значением из списка. Ниже приведены некоторые из них:
- Перебирайте элементы списка и используйте метод remove(), когда значение элемента совпадает с интересующим нас элементом.
- Отфильтруйте список с помощью лямбда-функции с условием, что элемент не должен интересовать нас.
- Перебирайте элементы, пока элемент находится в списке, и используйте метод remove().
Второй способ предпочтительнее, так как он дает лучшую производительность. Два других метода предназначены для обучения.
Пример 1: с помощью цикла For Loop
В следующем примере мы перебираем каждый элемент в списке, используя For Loop, и когда мы находим совпадение для удаляемого элемента, мы вызываем функцию remove() для списка.
mylist = [21, 5, 8, 52, 21, 87] r_item = 21 #remove the item for all its occurrences for item in mylist: if(item==r_item): mylist.remove(r_item) print(mylist)
Вывод:
[5, 8, 52, 87]
Пример 2: с помощью фильтра
Мы фильтруем те элементы списка, которые не равны __ne__ элементу.
mylist = [21, 5, 8, 52, 21, 87] r_item = 21 #remove the item for all its occurrences mylist = list(filter((r_item).__ne__, mylist)) print(mylist)
Вывод:
[5, 8, 52, 87]
Пример 3: с помощью оператора while
Пока есть совпадение с элементом в списке, вызовите функцию remove() в списке.
mylist = [21, 5, 8, 52, 21, 87] r_item = 21 #remove the item for all its occurrences while r_item in mylist: mylist.remove(r_item) print(mylist)
Вывод:
[5, 8, 52, 87]
В этом руководстве примеров в Python мы узнали, как удалить все вхождения элемента или элемента из списка с помощью различных подходов.
Как удалить элемент из списка?
Чтобы удалить элемент из списка в Python, вы можете использовать метод remove() в списке с элементом, переданным в качестве аргумента.
В этом руководстве мы рассмотрим примеры, чтобы понять, как использовать функцию remove() для удаления элемента из списка.
Синтаксис
Синтаксис метода:
mylist.remove(thisitem)
Где, этот элемент нужно удалить из списка.
Команда remove() удаляет только первое вхождение элемента в списке. Последующие появления остаются нетронутыми. В конце этой статьи мы также научимся удалять все элементы с определенным значением.
Пример 1: элемент присутствует в списке только один раз
В следующем примере у нас есть список из нескольких элементов. А элемент 5, который мы хотим удалить, присутствует только один раз.
mylist = [21, 5, 8, 52, 21, 87] item = 5 #remove the item mylist.remove(item) print(mylist)
Вывод:
[21, 8, 52, 21, 87]
Элемент удаляется, а индекс последующих элементов уменьшается на 1.
Пример 2: элемент присутствует в списке несколько раз
В следующем примере у нас есть список из нескольких элементов. И элемент, который мы хотели бы удалить, 21, присутствует дважды.
mylist = [21, 5, 8, 52, 21, 87] item = 21 #remove the item mylist.remove(item) print(mylist)
Вывод:
[5, 8, 52, 21, 87]
Элемент присутствует дважды, но удаляется только первое вхождение.
Пример 3: удалить все вхождения элемента из списка
В этом примере мы удалим все элементы, соответствующие определенному значению 21.
mylist = [21, 5, 8, 52, 21, 87] r_item = 21 #remove the item for all its occurrences for item in mylist: if(item==r_item): mylist.remove(r_item) print(mylist)
Вывод:
[5, 8, 52, 87]
mylist = [21, 5, 8, 52, 21, 21, 87]
попробуйте такое удаление на этом списке — все вхождения удалены не будут
такой метод удаления использовать не стоит
Через While — работает, а через If — нет.