2.1. Представление о списках
Мы добрались до второго модуля. В нём мы обсудим абстрактные типы данных. Не пугайтесь названия. Они созданы, чтобы программист мог работать с моделями реального мира более эффективно. Что это значит? Возьмём, к примеру, телефонный справочник. Если работать с каждым номером и фамилией на уровне отдельной переменной то программа будет громоздкая и непонятная. Как же будет удобно, если объект обладает операциями-аналогами реального справочника - добавить фамилию, найти фамилию. Программист будет мыслить на более абстрактном уровне и успешно решать задачи.
Начнём с самого простого типа - список. Список – это структура данных, которая содержит упорядоченный набор элементов, т.е. хранит последовательность элементов. Это легко представить, если вспомнить список покупок, в котором перечисляется, что нужно купить. Абстрактные типы помимо прочего используют методы из объектно-ориентированного программирования. Только не пугайтесь! Для нас это некоторые функции, которые относятся к объекту (непример, списку) и пишутся через точку.
Главное
- Для управления сложностью используются абстрактные типы данных.
- Список хранит последовательность значений.
- Метод - функция, которая относиться к объекту и записывается через точку.
Анатомия списков
Вы можете создать список для хранения букв алфавита, цифр от 0 до 9 или имен всех членов вашей семьи. В список можно поместить любую информацию, причем данные в списке даже не обязаны быть как-то связаны друг с другом. Список обозначается квадратными скобками ([]), а отдельные элементы списка разделяются запятыми. Пример списка с названиями моделей машин:
После вывода элементы списка появляются в квадратных скобках:
['audi', 'bmw', 'honda', 'kia']
.Пользователям такое представление не подойдет. Разберемся, как обратиться к отдельным элементам в списке.
Можем также создать пустой список чтобы потом наполнять:
Главное
- Список обозначается квадратными скобками
- Элементы списка перечисляются через запятую
- Пустой список обозначается пустыми квадратными скобками
На первый-второй рассчитайсь!
Списки - упорядоченные наборы данных. Для обращения к любому элементу списка следует указать его индекс (номер по порядку). Индексы начинаются с 0, а не с 1. Укажите имя списка, затем индекс элемента в квадратных скобках. Например, название первой машины в списке cars:
Когда мы запрашиваем один элемент из списка, Python возвращает только этот элемент без квадратных скобок
или кавычек. В нашем случае audi.
Именно такой результат должны увидеть пользователи — чистый, аккуратно отформатированный вывод.
Элементы списка могут использоваться как переменные. Проверим:
Результат - 7.
Главное
- Для обращения к элементу предназначен индекс
- Индексы начинаются с 0
- Синтаксис обращения: имя_списка[индекс]
Молодой человек, вам на первый или нулевой?
Как ни странно, первый элемент списка находится в позиции 0, а не в позиции 1. Этот принцип встречается в большинстве языков программирования, считайте что так исторически сложилось. Если вы получаете неожиданные результаты, определите, не допустили ли вы простую ошибку «смещения на 1».
Второму элементу списка соответствует индекс 1. В этой простой схеме индекс любого элемента вычисляется уменьшением на 1 его позиции в списке. Например, чтобы обратиться к четвертому элементу списка, следует запросить элемент с индексом 3.
В следующем примере выводятся названия велосипедов с индексами 1 и 3:
При этом выводится второй и четвертый элементы списка:
В Python также существует специальный синтаксис для обращения к последнему элементу списка. Если запросить элемент с индексом –1, всегда возвращается последний элемент в списке:
Фрагмент вернет значение 'kia'. Этот синтаксис весьма полезен, потому что при работе со списками часто требуется обратиться к последним элементам, не зная точное количество элементов в списке. Синтаксис также распространяется на другие отрицательные значения индексов. Индекс –2 возвращает второй элемент от конца списка, индекс –3 — третий элемент от конца и т. д.
Главное
- Индекс в списке = порядковый номер - 1
- Индексы со знаком минус предназначены для отсчёта с конца списка
Всё, пора что-то менять
Синтаксис изменения элемента напоминает синтаксис обращения к элементу списка. Чтобы изменить элемент, укажите имя списка и индекс изменяемого элемента в квадратных скобках. Присвойте новое значение и вуаля!
Допустим, имеется список мотоциклов, и первым элементом списка хранится строка 'honda'. Как изменить значение первого элемента?
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
Из вывода видно, что первый элемент действительно изменился, а остальные элементы списка сохранили прежние значения:
Изменить можно значение любого элемента в списке, не только первого. Главное, указать индекс. Кстати, индекс может быть и переменной!
Попробуем:
Главное
- Для изменения элемента списка необходимо присвоить новое значение по индексу.
- Индекс может быть также и переменной
Краткое содержание
- Список обозначается квадратными скобками ```motorcycles = ['honda', 'yamaha', 'suzuki']```
- Изменение списка как присвоение по индексу ```motorcycles[0] = 'oka'```
- Индекс может быть переменной ```motorcycles[i] = 'oka'```