Поиск по сайту:

Программа Python для удаления всех вхождений элемента в массив/список


Массив — это совокупность элементов однородных типов данных, хранящихся в смежных ячейках памяти. Python не обеспечивает поддержку встроенных массивов. Если вам нужно работать с массивами, вам нужно импортировать модуль «массив» или использовать массивы в библиотеке numpy.

Мы можем использовать списки вместо массивов в Python. Однако мы не можем ограничить элементы списка одним и тем же типом данных.

Данная задача — удалить все вхождения элемента в массиве/списке. я, э. мы должны удалить указанный элемент, включая повторяющиеся элементы. Давайте разберемся, как это на самом деле работает, рассмотрев сценарий ввода-вывода.

Сценарий ввода-вывода

Рассмотрим список, состоящий из одного или нескольких повторяющихся элементов (дубликатов).

my_list = [ 1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10 ].

Теперь предположим, что нам нужно удалить элемент 10. Мы ясно видим этот элемент 10 присутствует в списке и повторяется 5 раз. После удаления всех вхождений tрезультирующий список будет следующим -

my_list = [ 1, 20, 21, 16, 18, 22, 8 ].

Существуют разные способы удаления элементов из списка Python. Давайте обсудим их по отдельности.

Использование метода Remove()

Метод удаления() в Python принимает одно значение, представляющее элемент списка в качестве параметра, и удаляет его из текущего списка. Чтобы удалить все вхождения с помощью этого метода, нам нужно сравнить желаемый элемент со всеми другими элементами в списке, и всякий раз, когда происходит совпадение, нам нужно вызывать метод Remove().

Пример

В этом примере мы собираемся создать список элементов и удалить все вхождения значения 10 с помощью метода remove() method.

def removing_elements(my_list, element):
   element_count = my_list.count(element)
   for i in range(element_count):
      my_list.remove(element)
   return my_list
if __name__ == "__main__":
   my_list = [1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
   element = 10
   print("The list before performing the removal operation is: ")
   print(my_list)
   result = removing_elements(my_list, element)
   print("The list after performing the removal operation is: ")
   print(result)

Выход

Вывод для вышеуказанной программы следующий:

The list before performing the removal operation is: 
[1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
The list after performing the removal operation is:
[1, 20, 21, 16, 18, 22, 8]

Использование понимания списков

Техника «Понимание списка» состоит из длинных однострочных операторов, которые могут выполнить всю задачу. Используя это, можно создать новый , чтобы остальные элементы могли сохраняться всякий раз, когда заданное базовое условие удовлетворяется.

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

Пример

Давайте посмотрим пример -

def removing_elements(my_list, element):
   result = [i for i in my_list if i != element]
   return result

if __name__ == "__main__":
   my_list = [1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
   element = 10
   print("The list before performing the removal operation is: ")
   print(my_list)
   result = removing_elements(my_list, element)
   print("The list after performing the removal operation is: ")
   print(result) 

Выход

Вывод для вышеуказанной программы следующий:

The list before performing the removal operation is: 
[1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
The list after performing the removal operation is:
[1, 20, 21, 16, 18, 22, 8]

Использование метода «Filter()»

Метод filter() принимает функцию и итерируемый объект в качестве параметров и фильтрует элементы данной итерации на основе условия, описанного функцией.

Здесь, используя методы filter() и __ne__ (функциональность оператора не равно), мы можем фильтровать элементы списка, которые не равны нужному элементу.

Пример

В этом примере мы удаляем все вхождения определенного элемента в списке с помощью метода filter().

def removing_elements(my_list, element):
   result = list(filter((element).__ne__, my_list))
   return result

if __name__ == "__main__":
   my_list = [1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10] 
   element = 10
   print("The list before performing the removal operation is: ")
   print(my_list)
   result = removing_elements(my_list, element)

   print("The list after performing the removal operation is: ")
   print(result)

Выход

Вывод для вышеуказанной программы следующий:

The list before performing the removal operation is: 
[1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
The list after performing the removal operation is:
[1, 20, 21, 16, 18, 22, 8]

Статьи по данной тематике