← Все вопросы
Как удалить элемент из списка — в чём разница remove, pop и del?
21
Запутался в способах удаления. Есть remove(), pop(), есть del. Когда что использовать и чем они вообще отличаются?
3 ответа
33
✓ Принятый ответ — помог автору
Коротко по сути:
remove(x)— удаляет первый элемент, равный значениюx(по значению, не по индексу). Если такого нет —ValueError.pop(i)— удаляет элемент по индексуiи возвращает его. Без аргумента — последний.del lst[i]— удаляет по индексу, ничего не возвращает, умеет срезы (del lst[1:3]).
a = [10, 20, 30, 20]
a.remove(20) # [10, 30, 20] — убрал первое 20
x = a.pop(0) # x=10, a=[30, 20]
del a[0] # a=[20]
Правило: знаешь значение — remove, знаешь позицию и нужно значение — pop, знаешь позицию и значение не нужно (или срез) — del.
Шамиль Ausc огонь, наконец разложилось по полкам 🙏 · 12 месяцев назад
Светлана Петровна а если значения нет — remove кидает ошибку, ловите через if x in lst · 12 месяцев назад
11
Ещё нюанс: pop() возвращает удалённый элемент, а remove и del — нет. Поэтому когда надо «достать и убрать» — только pop.
-5
remove по индексу работает
Игорь Попов нет, remove по значению. По индексу — del или pop · 12 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.