2.2. Операции со списками
Добавьте меня в друзья!
Простейший способ добавления новых элементов в список — присоединение элемента в конец списка. Используя список из предыдущего примера, добавим новый элемент 'ducati':
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
Метод append() присоединяет строку 'ducati' в конец списка, другие
элементы в списке при этом остаются неизменными. Вывод следующий:
Метод append() упрощает динамическое построение списков. Например, вы можете начать с пустого списка и добавлять в него элементы серией команд append(). В следующем примере в пустой список добавляются элементы 'honda', 'yamaha' и 'suzuki':
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
Полученный список выглядит точно так же, как и списки из предыдущих примеров:
['honda', 'yamaha', 'suzuki']
Такой способ построения списков встречается очень часто, потому что данные, которые пользователь захочет сохранить в программе, нередко становятся известными только после запуска программы. Чтобы пользователь мог управлять содержимым списка, начните с определения пустого списка, а затем присоединяйте к нему каждое новое значение.
Главное
- Для добавления элемента в список используется метод append
Здесь отрежем, там пришьем
Метод pop() удаляет последний элемент из списка и позволяет работать с ним после удаления. Удалим мотоцикл из списка и распечатаем его:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
Из вывода видно, что значение 'suzuki', удаленное в конце списка, теперь хранится в переменной popped_motorcycle:
Можно удалить также элемент по заданному индексу:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.pop(1)
print(motorcycles)
Главное
- Для удаления элемента из списка метод pop
- Метод pop без аргументов удаляет последний элемент из списка
- метод pop с аргументами удаляет элемент по индексу
Следующая станция - сортировочная
Попробуем отсортировать список, используя метод sort объекта списка. Сортировка - это упорядочивание значений по какому-то признаку, чаще всего по увеличению значения.
Главное
- Для сортировки используйте метод sort
Ну, давай поитерируй еще немного
Итерация по списку осуществляется очень удобно:
При каждой итерации переменная цикла river становиться равной следующему элементу из списка. Если есть желание во время цикла контролировать индекс, то надо воспользоваться функицей len:
rivers=['Oka','Lena','Ob']
total_rivers = len(rivers)
for i in range(total_rivers):
print(rivers[i])
Выглядит более громоздко, но в некоторых случаях может быть удобным решением. Как вариант, необходимо поменять значения списка во время итерации.
Главное
- Для итерации элементам используйте метод for
- Для итерации по индексам сначала надо получить длину списка с помощью len
Срезаем сцепки
Срезы - это удобный способ получения части списка. Для этого в квадратных скобочках указывется позиция начала для выделения, затем двоеточие и позиция конца выделения.
В результате выведется ['b', 'c']
. Если вы пропустите первый индекс, то срез начнется с самого начала:
Результат - ['a', 'b', 'c', 'd']
. Если второй, то до конца:
На выходе ['d', 'e', 'f']
.
Теперь немного другой вариант - сцепим два списка. К счастью, это делается просто оператором плюс:
Главное
- Для среза (выделения) используйте двоеточие в квадратных скобочках
- Для сцепки двух списков используйте операцию плюс.
На заметку: объекты и классы
Хотя я и старался до сих пор оттянуть обсуждение объектов и классов, на данном этапе всё же необходимо некоторое пояснение, чтобы вы лучше поняли идею списков. Список – это один из примеров использования объектов и классов. Когда мы назначаем некоторой переменной i значение, скажем, целое число 5, это можно представить себе как создание объекта (т.е. экземпляра) i класса (т.е. типа) int. Чтобы лучше понять это, прочитайте help(int). Класс может также иметь методы, т.е. функции, определённые для использования только применительно к данному классу. Этот функционал будет доступен только когда имеется объект данного класса. Например, Python предоставляет метод append для класса list, который позволяет добавлять элемент к концу списка. Так mylist.append('and item') добавит эту строку к списку mylist. Обратите внимание на обозначение точкой для доступа к методам объектов. Класс также может иметь поля, которые представляют собой не что иное, как переменные, определённые для использования только применительно к данному классу. Эти переменные/имена можно использовать только тогда, когда имеется объект этого класса. Доступ к полям также осуществляется при помощи точки. Например, mylist.field. Чтобы узнать более детально обо всех методах объекта списка, просмотрите help(list).
Краткое содержание
- Добавление элемента выполняется методом append ```motorcycles.append('oka')```
- Удаление элемента методом pop по индексу ```motorcycles.pop(0)```
- Сортировка по возрастанию sort ```motorcycles.sort()```
- Итерация по значениям списка ```for el in list:```
- Итерация по индексам списка ```for i in range(len(list)):```
- Срезы выполняются через двоеточие ```motorcycles[1:3]```
- Сцепки списков операцией плюс ```res=list1+list2```
Самостоятельная работа
Изучите дополнительные методы в списках на сайте pythonworld.