Изучаем Python | страница 35



Сначала в точке (1) определяется и выводится содержимое списка motorcycles. В точке (2) значение извлекается из списка и сохраняется в переменной с именем popped_motorcycle. Вывод измененного списка в точке (3) показывает, что значение было удалено из списка. Затем мы выводим извлеченное значение в точке (4), демонстрируя, что удаленное из списка значение остается доступным в программе.

Из вывода видно, что значение 'suzuki', удаленное в конце списка, теперь хранится в переменной popped_motorcycle:

['honda', 'yamaha', 'suzuki']

['honda', 'yamaha']

suzuki

Для чего может понадобиться метод pop()? Представьте, что мотоциклы в списке хранятся в хронологическом порядке в соответствии с датой их покупки. В таком случае команда pop() может использоваться для вывода сообщения о последнем купленном мотоцикле:

motorcycles = ['honda', 'yamaha', 'suzuki']


last_owned = motorcycles.pop()

print("The last motorcycle I owned was a " + last_owned.title() + ".")

Программа выводит простое сообщение:

The last motorcycle I owned was a Suzuki.

Извлечение элементов из произвольной позиции списка


Вызов pop() может использоваться для удаления элемента в произвольной позиции списка; для этого следует указать индекс удаляемого элемента в круглых скобках.

motorcycles = ['honda', 'yamaha', 'suzuki']


(1) first_owned = motorcycles.pop(0)

(2)print('The first motorcycle I owned was a ' + first_owned.title() + '.')

Сначала первый элемент извлекается из списка в точке (1) , а затем в точке (2) выводится сообщение об этом мотоцикле. Программа выводит простое сообщение о первом мотоцикле:

The first motorcycle I owned was a Honda.

Помните, что после каждого вызова pop() элемент, с которым вы работаете, уже не находится в списке.

Если вы не уверены в том, какой из двух способов выбрать — команду del или метод pop(), — то простое правило поможет вам определиться. Если вы собираетесь просто удалить элемент из списка, никак не используя его, выбирайте команду del; если же вы намерены использовать элемент после удаления из списка, выбирайте метод pop().

Удаление элементов по значению


Иногда позиция удаляемого элемента неизвестна. Если вы знаете только значение элемента, используйте метод remove().

Допустим, из списка нужно удалить значение 'ducati':

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']

print(motorcycles)


(1) motorcycles.remove('ducati')

print(motorcycles)

Код в точке (1) приказывает Python определить, в какой позиции списка находится значение 'ducati', и удалить этот элемент: