Сообщить об ошибке.

Удаление элемента списка по индексу в Python

Синтаксис:

del sequence[i]
# или
sequence.pop(i)

Параметры:

  • sequence - изменяемая последовательность, list или bytearray,
  • i - указывает на индекс в последовательности, целое число.

Результат:

  • операция удаления по индексу с инструкцией del ничего не возвращает.
  • операция удаления по индексу методом sequence.pop(i) возвращает значение значение удаляемого элемента.

Описание:

Операция del sequence[i] или sequence.pop(i) позволяет удалить элемент ПО ИНДЕКСУ из последовательности.

Вышеуказанные операции удаляют элемент последовательности sequence по индексу i. Индекс i может принимать отрицательные значения, в этом случае элементы последовательности sequence считаются с конца.

Если производится попытка удалить элемент НЕИЗМЕНЯЕМОЙ последовательности (например str или bytes), то поднимается исключение TypeError

При удалении значение индекса i находится за пределами длины последовательности len(sequence) вызывается исключение IndexError.

Операции удаления элемент по индексу поддерживаются только изменяемыми типами последовательностей.

Примечание. Удалить элемент изменяемой последовательности ПО ЗНАЧЕНИЮ x можно методом sequence.remove(x).

Примеры удаления элемента списка по индексу.

>>> x = [2, 0, 3, 12, 'foo', 15, 100, 18]
>>> del x[0]
>>> x
# [0, 3, 12, 'foo', 15, 100, 18]

# метод изменяемой последовательности 
# sequence.pop() возвращает удаляемый элемент
>>> x.pop(4)
# 15
>>> x
# [0, 3, 12, 'foo', 100, 18]

>>> del x[-1]
>>> x
# [0, 3, 12, 'foo', 100]

>>> x.pop(-3)
# 12
>>> x
# [0, 3, 'foo', 100]

# Индекс за пределами длины последовательностями
>>> del x[10]
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# IndexError: list assignment index out of range