Python list drop element by value

Удаление элемента из списка в 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

Источник

Python : How to remove element from a list by value or Index | remove() vs pop() vs del

In this article we will discuss different ways to remove an elements from list.

Remove an element from List by value using list.remove()

Python’s list provides a member function to remove an element from list i.e.

It removes the first occurrence of given element from the list.

Frequently Asked:

# List of numbers listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]

Let’s remove 56 from the given list using list.remove() i.e.

# Remove first occurrence of 56 from List listOfnum.remove(56)

It will remove the first occurrence of 56 from the above lists. Lists contents will be now,

[12, 44, 45, 34, 3, 56, 4, 33, 44, 56]

If we try to remove the element that doesn’t exists in list then list.remove() will throw exception.
Therefore before calling list.remove() we should either,

Check if element exists in list i.e.

# Check if element exist in List, before removing if 99 in listOfnum: listOfnum.remove(99) else: print("Given Element Not Found in List")
# If given element doesn't exists in list, then remove() can throw Error # Therefore use try / except while calling list.remove() try : listOfnum.remove(99) except ValueError: print("Given Element Not Found in List")

Related Articles

Remove an element from List by Index using list.pop()

In python list‘s pop() function will remove the element at given index and also returns the deleted element.
If index is not given then it deletes the last element.

We have a list of ints i.e.

# List of numbers listOfnum = [12, 44, 12, 56, 45, 34, 3, 56, 4, 33, 44, 56]

Let’s remove element at index 2

# Remove the element at index 2 in list value = listOfnum.pop(2)

List’s contents will be now

[12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56]

Returned value is 12 i.e. the deleted element.

list.pop() and Runtime Error

If list.pop() is called an index that is out of the boundary of List then it will generate a runtime error.
Therefore we should always check the size of list before calling list.pop() i.e.

# pop() can throw error if given index is out of range, so check size before calling it if len(listOfnum) >= 20: listOfnum.pop(20) else: print("Index Out of Range")
# pop() can throw error if given index is out of range, so use try / except try : listOfnum.pop(20) except IndexError: print("Index Out of Range")

Remove an element from List by del

In python del is a keyword and can be used to delete the element in list by index i.e.

It will delete the element at index 2 in list.

If del list[index] is called on an index that is out of the boundary of List then it will generate a runtime error.
Therefore check size of list before calling del i.e.

# del list[index] can throw error if given index is out of range, so check size before calling it if len(listOfnum) >= 20: del listOfnum[20] else: print("Index Out of Range")
# del list[index] can throw error if given index is out of range, so use try / except try : del listOfnum[20] except IndexError: print("Index Out of Range")

Complete example is as follows,

def main(): # List of numbers listOfnum = [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56] ''' Remove an element from List by value using list.remove() ''' print("*****list.remove()*****") print("Original List : " , listOfnum) # Remove first occurrence of 56 from List listOfnum.remove(56) print("Modified List : " , listOfnum) # If given element doesn't exists in list, then remove() can throw Error # Therefore use try / except while calling list.remove() try : listOfnum.remove(99) except ValueError: print("Given Element Not Found in List") # Check if element exist in List, before removing if 99 in listOfnum: listOfnum.remove(99) else: print("Given Element Not Found in List") ''' Remove an element from List by Index using list.pop() ''' print("*****list.pop()*****") # List of numbers listOfnum = [12, 44, 12, 56, 45, 34, 3, 56, 4, 33, 44, 56] print("Original List : ", listOfnum) # Remove the element at index 2 in list value = listOfnum.pop(2) print("Deleted Element : ", value) print("Modified List : ", listOfnum) # Remove the last element from list value = listOfnum.pop() print("Deleted Element : ", value) print("Modified List : ", listOfnum) # pop() can throw error if given index is out of range, so check size before calling it if len(listOfnum) >= 20: listOfnum.pop(20) else: print("Index Out of Range") # pop() can throw error if given index is out of range, so use try / except try : listOfnum.pop(20) except IndexError: print("Index Out of Range") print("*****del list[index]*****") ''' Remove an element from List by del ''' listOfnum = [12, 44, 56, 45, 34, 3, 4, 33, 44] print("Original List : ", listOfnum) # Delete element at index 2 del listOfnum[2] print("Modified List : ", listOfnum) # del list[index] can throw error if given index is out of range, so check size before calling it if len(listOfnum) >= 20: del listOfnum[20] else: print("Index Out of Range") # del list[index] can throw error if given index is out of range, so use try / except try : del listOfnum[20] except IndexError: print("Index Out of Range") if __name__ == '__main__': main()
*****list.remove()***** Original List : [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56] Modified List : [12, 44, 45, 34, 3, 56, 4, 33, 44, 56] Given Element Not Found in List Given Element Not Found in List *****list.pop()***** Original List : [12, 44, 12, 56, 45, 34, 3, 56, 4, 33, 44, 56] Deleted Element : 12 Modified List : [12, 44, 56, 45, 34, 3, 56, 4, 33, 44, 56] Deleted Element : 56 Modified List : [12, 44, 56, 45, 34, 3, 56, 4, 33, 44] Index Out of Range Index Out of Range *****del list[index]***** Original List : [12, 44, 56, 45, 34, 3, 4, 33, 44] Modified List : [12, 44, 45, 34, 3, 4, 33, 44] Index Out of Range Index Out of Range

Источник

Читайте также:  Php get auth header
Оцените статью