['Groucho', 'Chico', 'Harpo', 'Gummo', 'Zeppo']
>>> marxes.insert(10, 'Karl')
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Gummo', 'Zeppo', 'Karl']
Удаление заданного элемента
с помощью функции del
Наши консультанты только что проинформировали нас о том, что Гуммо (Gummo)
был одним из братьев Маркс, а Карл (Karl) — не был. Отменим последний ввод:
>>> del marxes[-1]
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Gummo', 'Zeppo']
Когда вы удаляете заданный элемент, все остальные элементы, которые идут
следом за ним, смещаются, чтобы занять место удаленного элемента, а длина спи-
ска уменьшается на единицу. Если вы удалите 'Harpo' из последней версии списка,
то получите такой результат:
>>> marxes = ['Groucho', 'Chico', 'Harpo', 'Gummo', 'Zeppo']
>>> marxes[2]
'Harpo'
>>> del marxes[2]
>>> marxes
['Groucho', 'Chico', 'Gummo', 'Zeppo']
>>> marxes[2]
'Gummo'
del является оператором Python, а не методом списка — нельзя написать marxes[-2].del().
Он похож на противоположную присваиванию (=) операцию: открепляет имя от объекта
Python и может освободить память объекта, если это имя являлось последней ссылкой на
нее.
Списки
77
Удаление элемента по значению
с помощью функции remove()
Если вы не знаете точно или вам все равно, в какой позиции находится элемент,
используйте функцию remove(), чтобы удалить его по значению. Прощай, Гуммо:
>>> marxes = ['Groucho', 'Chico', 'Harpo', 'Gummo', 'Zeppo']
>>> marxes.remove('Gummo')
>>> marxes
['Groucho', 'Chico', 'Harpo', 'Zeppo']
Получение заданного элемента и его удаление
с помощью функции pop()
Вы можете получить элемент из списка и в то же время удалить его с помощью функ-
ции pop(). Если вызовете функцию pop() и укажете некоторое смещение, она возвратит
элемент, находящийся в заданной позиции; если аргумент не указан, будет использо-
вано значение –1. Так, вызов pop(0) вернет головной (начальный) элемент списка,
а вызов pop() или pop(-1) — хвостовой (конечный) элемент, как показано далее:
>>> marxes = ['Groucho', 'Chico', 'Harpo', 'Zeppo']
>>> marxes.pop()
'Zeppo'
>>> marxes
['Groucho', 'Chico', 'Harpo']