Инструкция удаляет переменные, элементы, ключи, срезы и атрибуты.
del от delete (англ.) — удалить.

del name 
del name[i]
del name[i:j:k]
del name.attribute

На заметку
В первой форме name — это имя переменной, взятое буквально. В последних трех формах name может являться выражением.

  • Удаление нескольких целей рекурсивно удаляет каждую цель слева направо.
  • Удаление имени удаляет привязку этого имени из локального или глобального пространства имен (в зависимости от того, были ли определено имя при помощи инструкции global в том же блоке кода). Если имя не привязано, возбуждается исключение NameError.
  • Удаление ссылок на атрибуты, элементов и срезов передаётся базовому объекту (носителю) и осуществляется им. Удаление среза, в целом, эквивалентно присвоению пустого среза (однако и оно определяется самим объектом среза).

del variableудаление переменной
del obj.attrудаление атрибута
del data[k]удаление элемента по индексу
del data[i:j]удаление элементов по срезу

my_list = [123, 'spam', 1.23, 'NI']
del my_list[2]
my_list # [123, 'spam', 'NI']

another_list = ['abc', my_list, 42]
del another_list[1][2] # удаляем ‘NI’ из вложенного списка my_list
my_list # [123, 'spam']

list_one = ['spam', 1, 11, 111]
list_two = [2, 22, 'spam', 222]
list_three = [3, 'spam', 33, 333]
del list_one[0], list_two[2], list_three[1] # удаляем spam одновременно из трёх списков

+py3.2: Разрешено удаление имени из локального пространства имён, если оно используется во вложенном блоке как несвязанное (не было определено в рамках того же блока). Ранее в таких случаях возбуждалось SyntaxError:

def print_done():

some = 'some'

del some
# До Python 3.2 в подобных случаях инструкция вызывает SyntaxError:
# can not delete variable 'some' referenced in nested scope

def print_some():
print(some)

print('done')


print_done()

Синонимы поиска: del, delete, удалить
В разделе «Simple Statements (простые инструкции, операторы)»: assert pass raise with Арифметические операторы
На заметку
Читайте нас в Twitter. Ссылка в самом низу страницы.