Removing items from list python

Remove an item from a list in Python (clear, pop, remove, del)

In Python, use list methods clear() , pop() , and remove() to remove items (elements) from a list. It is also possible to delete items using the del statement by specifying a position or range with an index or slice. Additionally, you can utilize list comprehensions to remove items that meet a specific condition.

To learn how to add an item to a list, see the following article:

Remove all items: clear()

You can remove all items from a list with clear() .

Remove an item by index and get its value: pop()

You can remove the item at the specified position and get its value with pop() . The index starts at 0 (zero-based indexing).

l = [0, 10, 20, 30, 40, 50] popped_item = l.pop(0) print(popped_item) # 0 print(l) # [10, 20, 30, 40, 50] popped_item = l.pop(3) print(popped_item) # 40 print(l) # [10, 20, 30, 50] 

Negative values can be used to specify a position from the end of the list, with the last index being -1 .

popped_item = l.pop(-2) print(popped_item) # 30 print(l) # [10, 20, 50] 

If no argument is provided, the last item in the list is removed.

popped_item = l.pop() print(popped_item) # 50 print(l) # [10, 20] 

Specifying a nonexistent index will result in an error.

# popped_item = l.pop(100) # IndexError: pop index out of range 

Note that using pop(0) to remove the first item is an O(n) operation and is inefficient. For the computational complexity of various operations on lists, see the official Python wiki:

Читайте также:  Php not found or unable to stat

To remove the first item with O(1) complexity, use the deque type provided in the standard library’s collections module. For example, when treating data as a queue (FIFO), deque is a more efficient option.

Remove an item by value: remove()

You can remove the first item in the list whose value equals the specified value with remove() .

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave'] l.remove('Alice') print(l) # ['Bob', 'Charlie', 'Bob', 'Dave'] 

If the list contains more than one item with the specified value, only the first occurrence is deleted.

l.remove('Bob') print(l) # ['Charlie', 'Bob', 'Dave'] 

To remove multiple items that meet a specific condition at once, use list comprehensions as described below.

If you specify a nonexistent value, an error will be raised.

# l.remove('xxx') # ValueError: list.remove(x): x not in list 

You can use the in operator to check if a list contains a specific item.

Remove items by index or slice: del

In addition to the list methods, you can remove elements from a list using the del statement.

Specify the item to be deleted by index. The first index is 0 , and the last is -1 .

l = [0, 10, 20, 30, 40, 50] del l[0] print(l) # [10, 20, 30, 40, 50] del l[3] print(l) # [10, 20, 30, 50] del l[-1] print(l) # [10, 20, 30] del l[-2] print(l) # [10, 30] 

You can delete multiple items with slice notation.

l = [0, 10, 20, 30, 40, 50] del l[2:5] print(l) # [0, 10, 50] l = [0, 10, 20, 30, 40, 50] del l[:3] print(l) # [30, 40, 50] l = [0, 10, 20, 30, 40, 50] del l[-2:] print(l) # [0, 10, 20, 30] 

It is also possible to delete all items by specifying the entire range.

l = [0, 10, 20, 30, 40, 50] del l[:] print(l) # [] 

You can specify step as [start:stop:step] .

l = [0, 10, 20, 30, 40, 50] del l[::2] print(l) # [10, 30, 50] 

See the following article for details on slices.

Remove items that meet the condition: List comprehensions

Removing items that satisfy a specific condition is equivalent to extracting items that do not satisfy the condition.

To achieve this, use list comprehensions.

An example of removing odd or even items (i.e., keeping even or odd items) is as follows. % is the remainder operator, and i % 2 calculates the remainder when dividing i by 2 .

When using list comprehensions, a new list is created, leaving the original list unchanged. This is different from using list type methods or the del statement.

l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] evens = [i for i in l if i % 2 == 0] print(evens) # [0, 2, 4, 6, 8] odds = [i for i in l if i % 2 != 0] print(odds) # [1, 3, 5, 7, 9] print(l) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

For details on extracting elements using list comprehensions, see the following article:

Here are other examples of using list comprehensions:

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David'] print(l) # ['Alice', 'Bob', 'Charlie', 'Bob', 'David'] print([s for s in l if s != 'Bob']) # ['Alice', 'Charlie', 'David'] print([s for s in l if s.endswith('e')]) # ['Alice', 'Charlie'] 

For examples involving a list of strings, see the following article:

To remove duplicate elements from a list, use set() :

print(list(set(l))) # ['Alice', 'Charlie', 'David', 'Bob'] 

Источник

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

Источник

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