53
3.3. Собственный список
: выберите свой любимый вид транспорта (например, мотоциклы
или машины) и создайте список с примерами. Используйте свой список для вывода ут-
верждений об элементах типа: «Я хотел бы купить мотоцикл Honda».
Изменение, добавление и удаление элементов
Как правило, вы будете создавать
динамические
списки; это означает, что во время
выполнения программы в созданном вами списке будут добавляться и удаляться
элементы. Например, вы можете создать игру, в которой игрок должен стрелять
по кораблям космических захватчиков. Исходный набор кораблей сохраняется
в списке; каждый раз, когда вы сбиваете корабль, он удаляется из списка. Каждый
раз, когда на экране появляется новый враг, он включается в список. Длина списка
кораблей будет уменьшаться и увеличиваться по ходу игры.
Изменение элементов в списке
Синтаксис изменения элемента напоминает синтаксис обращения к элементу
списка. Чтобы изменить элемент, укажите имя списка и индекс изменяемого эле-
мента в квадратных скобках; далее задайте новое значение, которое должно быть
присвоено элементу.
Допустим, имеется список мотоциклов и первым элементом списка хранится стро-
ка
'honda'
. Как изменить значение первого элемента?
motorcycles.py
❶
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
❷
motorcycles[0] = 'ducati'
print(motorcycles)
В точке
определяется исходный список, в котором первый элемент содержит
строку
'honda'
. В точке
значение первого элемента заменяется строкой
'ducati'
.
Из вывода видно, что первый элемент действительно изменился, тогда как осталь-
ные элементы списка сохранили прежние значения:
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
Изменить можно значение любого элемента в списке, не только первого.
Добавление элементов в список
Новые элементы могут добавляться в списки по разным причинам: например,
для появления на экране новых космических кораблей, включения новых данных
в визуализацию или добавления новых зарегистрированных пользователей на по-
54
Глава 3 • Списки
строенный вами сайт. Python предоставляет несколько способов добавления новых
данных в существующие списки.
Присоединение элементов в конец списка
Простейший способ добавления новых элементов в список —
присоединение
эле-
мента в конец списка. Используя список из предыдущего примера, добавим новый
элемент
'ducati'
в конец списка:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
❶
motorcycles.append('ducati')
print(motorcycles)
Метод
append()
в точке
присоединяет строку
'ducati'
в конец списка, другие
элементы в списке при этом остаются неизменными:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
Метод
append()
упрощает динамическое построение списков. Например, вы може-
те начать с пустого списка и добавлять в него элементы серией команд
append()
.
В следующем примере в пустой список добавляются элементы
'honda'
,
'yamaha'
и
'suzuki'
:
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
Полученный список выглядит точно так же, как и списки из предыдущих примеров:
['honda', 'yamaha', 'suzuki']
Такой способ построения списков встречается очень часто, потому что данные, ко-
торые пользователь захочет сохранить в программе, часто становятся известными
только после запуска программы. Чтобы пользователь мог управлять содержимым
списка, начните с определения пустого списка, а затем присоединяйте к нему каж-
дое новое значение.
Вставка элементов в список
Метод
insert()
позволяет добавить новый элемент в произвольную позицию спи-
ска. Для этого следует указать индекс и значение нового элемента.
motorcycles = ['honda', 'yamaha', 'suzuki']
❶
motorcycles.insert(0, 'ducati')
print(motorcycles)
Изменение, добавление и удаление элементов
55
В этом примере в точке
значение
'ducati'
вставляется в начало списка. Ме-
тод
insert()
выделяет свободное место в позиции 0 и сохраняет в нем значение
'ducati'
. Все остальные значения списка при этом сдвигаются на одну позицию
вправо:
['ducati', 'honda', 'yamaha', 'suzuki']
Удаление элементов из списка
Нередко возникает необходимость в удалении одного или нескольких элементов
из списка. Например, когда игрок сбивает корабль пришельца, этот корабль стоит
удалить из списка активных врагов. Или когда пользователь решает удалить свою
учетную запись в созданном вами веб-приложении, этот пользователь должен быть
удален из списка активных пользователей. Элементы удаляются из списка по по-
зиции или по значению.
Удаление элемента с использованием команды del
Если вам известна позиция элемента, который должен быть удален из списка, вос-
пользуйтесь командой
del
.
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
❶
del motorcycles[0]
print(motorcycles)
В точке
вызов
del
удаляет первый элемент,
'honda'
, из списка
motorcycles
:
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
Команда
del
позволяет удалить элемент из любой позиции списка, если вам
из вестен его индекс. Например, вот как из списка удаляется второй элемент,
'yamaha'
:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[1]
print(motorcycles)
Второй элемент исчез из списка:
['honda', 'yamaha', 'suzuki']
['honda', 'suzuki']
В обоих примерах значение, удаленное из списка после использования команды
del
, становится недоступным.
|