Python array delete element by value

Python: Remove Elements from List by Value

Lists are ordered sequences that can contain a wide range of object types. Members on lists can also be duplicated. Lists in Python are equivalent to arrays in other programming languages. There is, however, one significant difference. Arrays can only have elements of the same data type, whereas Python lists can have items of different data types.

Python Lists have several methods for removing elements from the list.

givenlist=["hello", "this", "is", "Btech", "Geeks" ,"is" ] , value=is

Remove Elements from the List by Values

There are several ways to remove elements from the list by values some of them are:

Method #1:Using remove() function

The remove method removes a list element based on its value rather than its index. When more than one element matches the provided value, the first matching element (the one with the lowest index) is removed. This is useful when you know which element needs to be removed ahead of time and don’t want to waste time looking for its index before removing it.

Let us now use the remove() function to remove the first instance of an element ‘is’.

Below is the implementation:

# Function which removes the element for given value and returns list def removeValue(givenlist, value): # removing the value using remove() givenlist.remove(value) # return the list return givenlist # Driver code # given list givenlist = ["hello", "this", "is", "Btech", "Geeks", "is"] # given value which is to be removed value = 'is' # passing list and value to removeValue function to remove the element print(removeValue(givenlist, value))
['hello', 'this', 'Btech', 'Geeks', 'is']

If we use the remove() function to remove an element from a list that does not exist, what happens? In that case, Value Error will be returned.

Method #2: Removing given value using remove() if exist

To avoid the ValueError, we check to see if the value is already in the list and then remove it.

Below is the implementation:

# Function which removes the element for given value and returns list def removeValue(givenlist, value): # checking if value is present in givenlist if value in givenlist: # removing the value using remove() givenlist.remove(value) # return the list return givenlist # Driver code # given list givenlist = ["hello", "this", "is", "Btech", "Geeks", "is"] # given value which is to be removed value = 'is' # passing list and value to removeValue function to remove the element print(removeValue(givenlist, value))
['hello', 'this', 'Btech', 'Geeks', 'is']

Method #3:Removing all occurrences of given value

As we saw in the previous examples, the remove() function always deletes the first occurrence of the given element from the list. To delete all occurrences of an element, we must use the remove() function in a loop until all occurrences are gone.

Читайте также:  Uploading text file in php

So we use while loop to achieve that.

Below is the implementation:

# Function which removes the element for given value and returns list def removeValue(givenlist, value): # using while loop to remove all occurrences of given value while(value in givenlist): # removing the value using remove() givenlist.remove(value) # return the list return givenlist # Driver code # given list givenlist = ["hello", "this", "is", "Btech", "Geeks", "is"] # given value which is to be removed value = 'is' # passing list and value to removeValue function to remove the element print(removeValue(givenlist, value))

Method #4: Using values, remove all occurrences of multiple elements from a list.

Assume we have a list of numbers and another list of values that we want to remove from the first list. We want to remove all of the elements from list2 from list1.

We’ve created a separate function for this, which takes two different lists as arguments.

  • The first is the givenlist.
  • The elements we want to remove are listed in the second list(valuelist)

It deletes all occurrences from the original list for each element in the second list.

  • Traverse the value list
  • Using while loop remove all occurrences of the value from given list.
  • Return given list

Below is the implementation:

# Function which removes the element for given value and returns list def removeValue(givenlist, valuelist): # Traverse the value list for value in valuelist: # using while loop to remove all occurrences of given value while(value in givenlist): # removing the value using remove() givenlist.remove(value) # return the list return givenlist # Driver code # given list givenlist = ["hello", "this", "is", "Btech", "Geeks", "is"] # given value list which is to be removed valuelist = ['is', 'hello', 'this'] # passing list and valuelist to removeValue function to remove the element print(removeValue(givenlist, valuelist))

Related Programs:

Источник

Удаление элемента из списка в Python (clear, pop, remove, del)

Тип данных List в Python помогает сохранять разные типы данных в определенной связанной последовательности. Данные записываются в квадратные скобки и разделяются запятыми.

В Python есть несколько методов для удаления элементов из списка: remove() , pop() и clear() . Помимо них также существует ключевое слово del .

Пример списка:

 
 
my_list = ['Python', 50, 11.50, 'Alex', 50, ['A', 'B', 'C']]

Индекс начинается с 0. В списке my_list на 0-ой позиции находится строка «Python». Далее:

  1. Целое число 50
  2. Число с плавающей точкой 11.50
  3. Снова строка — «Alex»
  4. Еще одно число 50
  5. Список из строк «A», «B» и «C»

Метод remove()

Метод remove() — это встроенный метод, который удаляет первый совпадающий элемент из списка.

Передается элемент, который нужно удалить из списка.

Метод не возвращает значений.

Как использовать:

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

Пример: использование метод remove() для удаления элемента из списка

В этом списке есть строки и целые числа. Есть повторяющиеся элементы: строка «Mars» и число 12.

 
 
my_list = [12, 'USA', 'Sun', 14, 'Mars', 12, 'Mars'] my_list.remove(12) # удаляем элемент 12 в начале print(my_list) my_list.remove('Mars') # удаляем первый Mars из списка print(my_list) my_list.remove(100) # ошибка print(my_list)
['USA', 'Sun', 14, 'Mars', 12, 'Mars'] ['USA', 'Sun', 14, 12, 'Mars'] Traceback (most recent call last): File "wb.py", line 6, in my_list.remove(100) # ошибка ValueError: list.remove(x): x not in list

Метод pop()

Этот метод удаляет элемент на основе переданного индекса.

Принимает лишь один аргумент — индекс.

  • Для удаления элемента списка нужно передать его индекс. Индексы в списках стартуют с 0. Для получения первого передайте 0. Для удаления последнего передайте -1.
  • Этот аргумент не является обязательным. Значение по умолчанию равно -1, поэтому по умолчанию будет удален последний элемент.
  • Если этот индекс не найден или он вне диапазона, то метод выбросит исключение IndexError: pop index .

Возвращает элемент, удаленный из списка по индексу. Сам же список обновляется и больше не содержит этот элемент.

Пример: использования метода pop() для удаления элемента

Попробуем удалить элемент с помощью pop:

Удалим из списка «Sun». Индекс начинается с 0, поэтому индекс для «Sun» будет 2.

 
 
my_list = [12, 'USA', 'Sun', 14, 'Mars', 12, 'Mars'] # Передавая индекс как 2, чтобы удалить Sun name = my_list.pop(2) print(name) print(my_list) # метод pop() без индекса - возвращает последний элемент item = my_list.pop() print(item) print(my_list) # передача индекса за пределами списка item = my_list.pop(15) print(item) print(my_list)
Sun [12, 'USA', 14, 'Mars', 12, 'Mars'] Mars [12, 'USA', 14, 'Mars', 12] Traceback (most recent call last): File "wb.py", line 14, in item = my_list.pop(15) IndexError: pop index out of range

Метод clear()

Метод clear() удаляет все элементы из списка.

Нет ни параметров, ни возвращаемого значения.

Пример

Метод clear() очистит данный список. Посмотрим:

 
 
my_list = [12, 'USA', 'Sun', 14, 'Mars', 12, 'Mars'] element = my_list.clear() print(element) print(my_list)

Ключевое слово del

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

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

Синтаксис: del list[start:stop] .

Вот пример того как с помощью del можно удалить первый, последний и сразу несколько элементов списка:

 
 
my_list = list(range(7)) print("Исходный список", my_list) # Чтобы удалить первый элемент del my_list[0] print("После удаления первого элемента", my_list) # Чтобы удалить элемент по индексу del my_list[5] print("После удаления элемента", my_list) # Чтобы удалить несколько элементов del my_list[1:5] print("После удаления нескольких элементов", my_list)
Исходный список [0, 1, 2, 3, 4, 5, 6] После удаления первого элемента [1, 2, 3, 4, 5, 6] После удаления элемента [1, 2, 3, 4, 5] После удаления нескольких элементов [1]

Как удалить первый элемент списка

Для этого можно использовать методы remove() , pop() . В случае с remove потребуется передать индекс первого элемента, то есть 0. Также можно использовать ключевое слово del.

Пример показывает применение всех этих способов.

 
 
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print("Список", my_list) my_list.remove('A') print("С использованием remove()", my_list) my_list = ['A', 'B', 'C', 'D', 'E', 'F'] my_list.pop(0) print("С использованием pop()", my_list) my_list = ['A', 'B', 'C', 'D', 'E', 'F'] del my_list[0] print("С использованием del", my_list)
Список ['A', 'B', 'C', 'D', 'E', 'F'] С использованием remove() ['B', 'C', 'D', 'E', 'F'] С использованием pop() ['B', 'C', 'D', 'E', 'F'] С использованием del ['B', 'C', 'D', 'E', 'F']

Как удалить несколько элементов из списка

Методы remove() и pop() могут удалить только один элемент. Для удаления нескольких используется метод del.

Например, из списка ['A', 'B', 'C', 'D', 'E', 'F'] нужно удалить элементы B, C и D. Вот как это делается с помощью del .

 
 
my_list2 = ['A', 'B', 'C', 'D', 'E', 'F'] print("Список", my_list2) del my_list2[1:4] print("С использованием del", my_list2)
Список ['A', 'B', 'C', 'D', 'E', 'F'] С использованием del ['A', 'E', 'F']

Как удалить элемент из списка с помощью индекса в Python

Для удаления элемента по индексу используйте pop() . Для этого также подойдет ключевое слово del .

 
 
# Использование del для удаления нескольких элементов из списка my_list1 = ['A', 'B', 'C', 'D', 'E', 'F'] print("Список", my_list1) element = my_list1.pop(2) print("Используя pop", my_list1) # Использование del для удаления нескольких элементов из списка my_list2 = ['A', 'B', 'C', 'D', 'E', 'F'] del my_list2[2] print("Используя del", my_list2)
Список ['A', 'B', 'C', 'D', 'E', 'F'] Используя pop ['A', 'B', 'D', 'E', 'F'] Используя del ['A', 'B', 'D', 'E', 'F']

Выводы

В Python есть много способов удаления данных из списка. Это методы remove() , pop() , clear() и ключевое слово del .

  • remove() — удаляет первый встреченный элемент в списке, который соответствует условию.
  • pop() — удаляет элемент по индексу.
  • clear() — удаляет все элементы списка.

Обучение с трудоустройством

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

Python Q CEO Pythonru admin@pythonru.com https://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=g CEO Pythonru Python Александр Редактор https://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/ PythonRu.com admin@pythonru.com Alex Zabrodin 2018-10-26 Online Python, Programming, HTML, CSS, JavaScript

Источник

Оцените статью