Привет! Мы научились добавлять элементы в списки. Но что, если нужно удалить элемент? Python предоставляет несколько способов: remove(), pop(), del и clear().
В этой статье мы разберём:
remove()— удаление по значениюpop()— удаление по индексу с возвратомdel— удаление по индексу или срезуclear()— полная очистка списка- В чём разница между этими способами
- Что нужно знать перед началом
- Основная часть
- Метод remove()
- Метод pop()
- Оператор del
- Метод clear()
- Сравнение методов
- Примеры из реальной жизни
- Задачи для закрепления
- Нюансы и подводные камни
- remove() удаляет только первое вхождение
- pop() с отрицательным индексом
- del vs pop()
- Частые ошибки и как их избежать
- Ошибка 1: remove() на несуществующий элемент
- Ошибка 2: pop() с пустым списком
- Ошибка 3: Путаница между pop() и remove()
- Шпаргалка
- Заключение / Выводы
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python
- Базовое понимание списков (статьи 1–2 в этом подменю)
Совет: Все методы изменяют исходный список, не создавая новый.
Основная часть
Метод remove()
remove() удаляет первый элемент с указанным значением.
fruits = ["яблоко", "банан", "вишня", "банан"]
fruits.remove("банан")
print(fruits) # ["яблоко", "вишня", "банан"]Важно: Удаляется только первое вхождение. Если элемента нет — будет ошибка
ValueError.
fruits = ["яблоко", "банан"]
# fruits.remove("апельсин") # ValueError: list.remove(x): x not in listБезопасное удаление:
if "апельсин" in fruits:
fruits.remove("апельсин")Метод pop()
pop() удаляет элемент по индексу и возвращает его.
fruits = ["яблоко", "банан", "вишня"]
removed = fruits.pop(1)
print(removed) # "банан"
print(fruits) # ["яблоко", "вишня"]Совет: Если не указывать индекс,
pop()удаляет и возвращает последний элемент.
fruits = ["яблоко", "банан", "вишня"]
last = fruits.pop()
print(last) # "вишня"
print(fruits) # ["яблоко", "банан"]Оператор del
del удаляет элемент по индексу или целый срез. Не возвращает значение.
fruits = ["яблоко", "банан", "вишня", "дыня"]
del fruits[1]
print(fruits) # ["яблоко", "вишня", "дыня"]
del fruits[1:3]
print(fruits) # ["яблоко"]Совет:
delможет удалить всю переменную.
fruits = ["яблоко", "банан"]
del fruits
# print(fruits) # NameError: name 'fruits' is not definedМетод clear()
clear() удаляет все элементы из списка. Список остаётся пустым.
fruits = ["яблоко", "банан", "вишня"]
fruits.clear()
print(fruits) # []Сравнение методов
| Метод | Что делает | Возвращает | Ошибка |
|---|---|---|---|
remove() | Удаляет по значению | None | ValueError |
pop() | Удаляет по индексу | Удалённый элемент | IndexError |
del | Удаляет по индексу/срезу | Ничего | IndexError |
clear() | Очищает список | None | Нет |
Примеры из реальной жизни
Пример 1. Удаление пользователя из списка:
users = ["Анна", "Иван", "Петр", "Мария"]
users.remove("Иван") # Удалить по имени
print(users) # ["Анна", "Петр", "Мария"]Пример 2. Реализация стека (LIFO) с pop():
stack = [1, 2, 3, 4]
last = stack.pop()
print(last) # 4
print(stack) # [1, 2, 3]Пример 3. Удаление пустых строк:
data = ["a", "", "b", "", "c"]
while "" in data:
data.remove("")
print(data) # ["a", "b", "c"]Задачи для закрепления
Задача 1. Удали элемент «банан» из списка fruits = ["яблоко", "банан", "вишня"].
Задача 2. Удали и верни последний элемент из списка numbers = [1, 2, 3, 4].
Задача 3. Удали второй элемент из списка data = ["a", "b", "c", "d"] с помощью del.
Задача 4. Очисти список items = [1, 2, 3].
Задача 5. Что произойдёт при вызове remove() на несуществующий элемент?
Ответы:
Задача 1.
fruits = ["яблоко", "банан", "вишня"]
fruits.remove("банан")
print(fruits) # ["яблоко", "вишня"]Задача 2.
numbers = [1, 2, 3, 4]
last = numbers.pop()
print(last) # 4
print(numbers) # [1, 2, 3]Задача 3.
data = ["a", "b", "c", "d"]
del data[1]
print(data) # ["a", "c", "d"]Задача 4.
items = [1, 2, 3]
items.clear()
print(items) # []Задача 5.
# Будет ошибка ValueErrorНюансы и подводные камни
remove() удаляет только первое вхождение
numbers = [1, 2, 3, 2, 4]
numbers.remove(2)
print(numbers) # [1, 3, 2, 4]pop() с отрицательным индексом
fruits = ["яблоко", "банан", "вишня"]
item = fruits.pop(-2)
print(item) # "банан"
print(fruits) # ["яблоко", "вишня"]del vs pop()
delне возвращает значениеpop()возвращает удалённое значение
fruits = ["яблоко", "банан", "вишня"]
del fruits[1] # Ничего не возвращает
removed = fruits.pop(1) # Возвращает "вишня"Частые ошибки и как их избежать
Ошибка 1: remove() на несуществующий элемент
Всегда проверяй наличие элемента перед удалением.
Ошибка 2: pop() с пустым списком
empty = []
# empty.pop() # IndexError: pop from empty listПроверяй, не пуст ли список.
Ошибка 3: Путаница между pop() и remove()
pop()— по индексуremove()— по значению
Шпаргалка
| Что нужно | Как пишется |
|---|---|
| Удалить по значению | list.remove(item) |
| Удалить по индексу (с возвратом) | item = list.pop(index) |
| Удалить последний (с возвратом) | item = list.pop() |
| Удалить по индексу (без возврата) | del list[index] |
| Удалить срез | del list[1:3] |
| Очистить список | list.clear() |
Заключение / Выводы
Сегодня мы узнали:
remove()— удаление по значениюpop()— удаление по индексу с возвратомdel— удаление по индексу или срезуclear()— полная очистка списка








