Выбрать главу

Изменение элементов в списке

Синтаксис изменения элемента напоминает синтаксис обращения к элементу списка. Чтобы изменить элемент, укажите имя списка и индекс изменяемого элемента в квадратных скобках; далее задайте новое значение, которое должно быть присвоено элементу.

Допустим, имеется список мотоциклов, и первым элементом списка хранится строка 'honda'. Как изменить значение первого элемента?

motorcycles.py

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

print(motorcycles)

(2)motorcycles[0] = 'ducati'

print(motorcycles)

В точке (1) определяется исходный список, в котором первый элемент содержит строку 'honda'. В точке (2) значение первого элемента заменяется строкой 'ducati'. Из вывода видно, что первый элемент действительно изменился, а остальные элементы списка сохранили прежние значения:

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

['ducati', 'yamaha', 'suzuki']

Изменить можно значение любого элемента в списке, не только ­первого.

Добавление элементов в список

Новые элементы могут добавляться в списки по разным причинам — например, для появления на экране новых космических кораблей, включения новых данных в визуализацию или добавления новых зарегистрированных пользователей на построенный вами сайт. Python предоставляет несколько способов добавления новых данных в существующие списки.

Присоединение элементов в конец списка

Простейший способ добавления новых элементов в список — присоединение элемента в конец списка. Используя список из предыдущего примера, добавим новый элемент 'ducati':

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

print(motorcycles)

(1) motorcycles.append('ducati')

print(motorcycles)

Метод append() в точке (1) присоединяет строку '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']

(1) motorcycles.insert(0, 'ducati')

print(motorcycles)

В этом примере в точке (1) значение 'ducati' вставляется в начало списка. Метод insert() выделяет свободное место в позиции 0 и сохраняет в нем значение 'ducati'. Все остальные значения списка при этом сдвигаются на одну позицию вправо:

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

Удаление элементов из списка

Нередко возникает необходимость в удалении одного или нескольких элементов из списка. Например, когда игрок сбивает корабль пришельца, этот корабль нужно удалить из списка активных врагов. Или когда пользователь решает удалить свою учетную запись в созданном вами веб-приложении, этот пользователь должен быть убран из списка активных пользователей. Элементы удаляются из списка по позиции или по значению.

Удаление элемента с использованием команды del

Если вам известна позиция элемента, который должен быть удален из списка, воспользуйтесь командой del.

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

print(motorcycles)

(1) del motorcycles[0]

print(motorcycles)

В точке (1) вызов del удаляет первый элемент, 'honda', из списка motorcycles:

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

['yamaha', 'suzuki']

Команда del позволяет удалить элемент из любой позиции списка, если вам известен его индекс. Например, вот как из списка удаляется второй элемент 'yamaha':

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

print(motorcycles)

del motorcycles[1]

print(motorcycles)

Второй элемент исчез из списка:

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