Удаление элемента из списка в 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() — это встроенный метод, который удаляет первый совпадающий элемент из списка.

Синтаксис: list.remove(element).

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

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

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

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

Пример: использование метод 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 <module>
    my_list.remove(100)  # ошибка
ValueError: list.remove(x): x not in list

Метод pop()

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

Синтаксис: list.pop(index).

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

  • Для удаления элемента списка нужно передать его индекс. Индексы в списках стартуют с 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 <module>
    item = my_list.pop(15)
IndexError: pop index out of range

Метод clear()

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

Синтаксис: list.clear().

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

Пример

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

my_list = [12, 'USA', 'Sun', 14, 'Mars', 12, 'Mars']

element = my_list.clear()
print(element)
print(my_list)

Вывод:

None
[]

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

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

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

Также можно выбрать элементы в определенном диапазоне и удалить их с помощью 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 и библиотекам, уроков для начинающих и примеров написания программ.
Мои контакты: Почта
admin@pythonru.comAlex Zabrodin2018-10-26OnlinePython, Programming, HTML, CSS, JavaScript