М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет40/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   36   37   38   39   40   41   42   43   ...   334
Байланысты:
Изучаем Python


Глава 3 • Списки
Удаление элемента с использованием метода pop()
Иногда значение, удаляемое из списка, должно как-то использоваться. Допустим, 
вы хотите получить координаты 
x
и 
y
только что сбитого корабля пришельцев, что-
бы изобразить взрыв в этой позиции. В веб-приложении пользователь, удаленный 
из списка активных участников, может быть добавлен в список неактивных, и т. д.
Метод 
pop()
удаляет последний элемент из списка, но позволяет работать с ним 
после удаления. Удалим мотоцикл из списка:

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)

popped_motorcycle = motorcycles.pop() 

print(motorcycles)

print(popped_motorcycle)
Сначала в точке 

определяется и выводится содержимое списка 
motorcycles

В точке 

значение извлекается из списка и сохраняется в переменной с именем 
popped_motorcycle
. Вывод измененного списка в точке 

показывает, что значе-
ние было удалено из списка. Затем мы выводим извлеченное значение в точке 


демонстрируя, что удаленное из списка значение остается доступным в программе.
Из вывода видно, что значение 
'suzuki'
, удаленное в конце списка, теперь хранится 
в переменной 
popped_motorcycle
:
['honda', 'yamaha', 'suzuki'] 
['honda', 'yamaha']
suzuki
Для чего может понадобиться метод 
pop()
? Представьте, что мотоциклы в списке 
хранятся в хронологическом порядке в соответствии с датой их покупки. В таком 
случае команда 
pop()
может использоваться для вывода сообщения о последнем 
купленном мотоцикле:
motorcycles = ['honda', 'yamaha', 'suzuki'] 
last_owned = motorcycles.pop() 
print(f"The last motorcycle I owned was a {last_owned.title()}.")
Программа выводит простое сообщение:
The last motorcycle I owned was a Suzuki.
Извлечение элементов из произвольной позиции списка
Вызов 
pop()
может использоваться для удаления элемента в произвольной позиции 
списка; для этого следует указать индекс удаляемого элемента в круглых скобках.
motorcycles = ['honda', 'yamaha', 'suzuki']

first_owned = motorcycles.pop(0)

print(f"The first motorcycle I owned was a {first_owned.title()}.")


Изменение, добавление и удаление элементов
57
Сначала первый элемент извлекается из списка в точке 

, а затем в точке 

вы-
водится сообщение об этом мотоцикле. Программа выводит простое сообщение 
о первом мотоцикле:
The first motorcycle I owned was a Honda.
Помните, что после каждого вызова 
pop()
элемент, с которым вы работаете, уже 
не находится в списке.
Если вы не уверены в том, какой из двух способов выбрать, команду 
del
или метод 
pop()
, — простое правило поможет вам определиться: если вы собираетесь просто 
удалить элемент из списка, никак не используя его, выбирайте команду 
del
; если 
же вы намерены использовать элемент после удаления из списка, выбирайте ме-
тод 
pop()
.
Удаление элементов по значению
Иногда позиция удаляемого элемента неизвестна. Если вы знаете только значение 
элемента, используйте метод 
remove()
.
Допустим, из списка нужно удалить значение 
'ducati'
:
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] 
print(motorcycles)

motorcycles.remove('ducati')
print(motorcycles)
Код в точке 

приказывает Python определить, в какой позиции списка находится 
значение 
'ducati'
, и удалить этот элемент:
['honda', 'yamaha', 'suzuki', 'ducati'] 
['honda', 'yamaha', 'suzuki']
Метод 
remove()
также может использоваться для работы со значением, которое 
удаляется из списка. Следующая программа удаляет значение 
'ducati'
и выводит 
причину удаления:

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)

too_expensive = 'ducati'

motorcycles.remove(too_expensive)
print(motorcycles)

print(f"\nA {too_expensive.title()} is too expensive for me.")
После определения списка в точке 

значение 
'ducati'
сохраняется в перемен-
ной с именем 
too_expensive
в точке 

. Затем эта переменная сообщает Python, 
какое значение должно быть удалено из списка 

. В точке 

значение 
'ducati'
было удалено из списка, но продолжает храниться в переменной 
too_expensive



58

Достарыңызбен бөлісу:
1   ...   36   37   38   39   40   41   42   43   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет