На Горох
Информатика, 11 класс

§ 41. Списки

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 41. Списки

Кратко о теме

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

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Список — упорядоченная изменяемая последовательность элементов, обозначаемая в Python квадратными скобками. Упорядоченность означает, что у каждого значения есть своё место, а изменяемость позволяет менять содержимое списка после создания. Списки удобны для хранения и обработки набора связанных данных.

Элемент списка — отдельное значение последовательности. Например, в списке [4, 7, 2] три элемента; они могут быть не только числами, но и строками или значениями разных типов. Понимание того, что считается отдельным элементом, помогает правильно считать значения и выбирать нужное.

Индекс — номер элемента в списке: нумерация начинается с 0, а отрицательные индексы отсчитываются с конца. Поэтому первый элемент имеет индекс 0, второй — 1, а последний можно обозначить индексом −1. Индексы нужны, чтобы точно обратиться к значению или заменить его.

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

Как это устроено

Список создают перечислением элементов в квадратных скобках, разделяя значения запятыми: a = [4, 7, 2]. Python сохраняет заданный порядок, поэтому элементы останутся на своих местах, пока программа не изменит список. Если данных пока нет, можно создать пустой список записью a = []; это удобно, когда значения будут добавляться в ходе работы программы.

Чтобы получить элемент, указывают имя списка и индекс в квадратных скобках: например, a[0]. Нумерация начинается с нуля, потому что индекс обозначает, насколько далеко элемент находится от начала: у первого смещение равно нулю. Отрицательные индексы считают с противоположного конца, поэтому a[-1] позволяет обратиться к последнему элементу, не вычисляя его положительный индекс.

Списки изменяемы, поэтому присваивание по индексу заменяет уже существующий элемент: a[1] = 10. Это не создаёт дополнительное значение, а меняет то, что хранится на указанной позиции. Для добавления используют методы: append(x) помещает x в конец, а insert(i, x) вставляет его перед элементом с индексом i. Так можно пополнять список, не создавая его заново.

Срез записывают в форме a[start:stop:step], где start — начало, stop — граница окончания, а step — шаг между выбираемыми индексами. Правая граница не включается: запись a[1:4] берёт элементы с индексами 1, 2 и 3, но не 4. Если начало или конец пропущены, Python использует соответственно начало или конец списка; шаг можно не указывать, тогда он равен 1. Срез позволяет получить часть последовательности в виде нового списка.

Функция len(a) возвращает количество элементов, поэтому с её помощью можно узнать длину списка и проверить, сколько значений предстоит обработать. Чтобы пройти список целиком, используют цикл, например for x in a: — на каждом повторении x принимает очередной элемент. Такой перебор нужен для вычислений и проверок каждого значения. Если же программе необходим номер позиции, цикл можно организовать по индексам, учитывая, что последний допустимый индекс на единицу меньше длины.

Основные действия со списком в Python

ДействиеЗаписьРезультат
Создание спискаa = [элементы]Создаёт список из перечисленных значений
Доступ к элементуa[i]Возвращает элемент с индексом i
Замена элементаa[i] = значениеЗаписывает новое значение на позицию i
Получение срезаa[start:stop:step]Возвращает часть списка
Добавление элемента в конецa.append(x)Добавляет x после последнего элемента
Определение длиныlen(a)Возвращает число элементов

Выбирайте запись по задаче: индекс подходит для одного элемента, а срез — для части последовательности. Если нужно пополнить список, применяйте append, а для подсчёта элементов — len. Проверяйте, что индекс существует, прежде чем обращаться к значению.

Разбор задач

Задача 1. Для списка a = [4, 7, 2] определить значения a[0] и a[-1]. Здесь нужно найти элементы с двух разных концов списка: первый задаётся обычным индексом, последний — отрицательным. Сначала перечислим позиции, чтобы не перепутать нумерацию.

  1. В списке три элемента: 4, 7 и 2.
  2. Индекс 0 соответствует первому элементу, поэтому a[0] = 4.
  3. Индекс −1 обозначает последний элемент, поэтому a[-1] = 2.

Ответ: a[0] = 4, a[-1] = 2. Проверка проста: при движении от начала нумерация начинается с нуля, а при движении от конца последний элемент имеет индекс −1.

Задача 2. Дан список чисел. Нужно заменить его второй элемент на 10 и добавить число 5 в конец. Сначала важно отличить позицию элемента от его значения: второй элемент находится по индексу 1. Добавление в конец выполняется отдельно от замены.

  1. Для списка a запишите присваивание a[1] = 10: оно заменит значение на второй позиции.
  2. Затем выполните a.append(5), чтобы поместить число 5 после последнего элемента.
  3. Если исходный список, например, [3, 8, 6], после этих действий получится [3, 10, 6, 5].

Ответ: используйте a[1] = 10 и a.append(5). В примере результат — [3, 10, 6, 5]; конкретный список после обработки зависит от исходных значений.

Задача 3. Дан список целых чисел. Требуется создать новый список из элементов с чётными индексами, а затем найти его длину. Под чётными индексами понимаются позиции 0, 2, 4 и далее, а не обязательно чётные значения самих чисел. Это различие помогает выбрать правильный шаг среза.

  1. Возьмите срез a[::2]: начало и конец не заданы, поэтому выбираются элементы от начала списка до конца с шагом 2.
  2. Сохраните результат в отдельную переменную, например b = a[::2]. Это будет новый список из элементов с индексами 0, 2, 4 и так далее.
  3. Вычислите len(b), чтобы узнать количество выбранных элементов.

Ответ: список создаётся выражением b = a[::2], его длина находится как len(b). Например, для a = [9, 4, 6, 3, 8] получим b = [9, 6, 8] и len(b) = 3.

Типичные ошибки

  • Обращение к первому элементу по индексу 1. Так ошибаются, перенося привычный счёт с единицы на индексацию Python. В результате выбирается второй элемент, а при коротком списке может возникнуть ошибка. Проверьте позицию: первому соответствует индекс 0, второму — 1.
  • Предположение, что правая граница среза включается. Это происходит из-за сходства записи границ с обычным диапазоном. На самом деле элемент с индексом stop в результат не попадает. Для самопроверки выпишите индексы от start до stop − 1.
  • Использование индекса, которого нет в списке. Обычно индекс вычисляют, не учитывая длину последовательности. Обращение за её границы вызывает ошибку. У списка длины n допустимы индексы от 0 до n − 1; сравните индекс с len(a).
  • Путаница между добавлением и заменой. Присваивание a[i] = x заменяет существующий элемент, а append добавляет новый в конец. Ошибку допускают, ожидая, что присваивание увеличит список или что append изменит выбранную позицию. Сравните длину до и после: при замене она прежняя, при добавлении увеличивается на 1.

Связь с другими темами

Для работы со списками нужны знания о переменных, типах данных, строках и циклах. Индексация строк похожа на индексацию списков: в обоих случаях элементы можно выбирать по позиции, хотя строка не изменяется так же, как список. Циклы позволяют последовательно обрабатывать значения списка, а не выполнять одинаковые действия вручную.

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

Что запомнить

  • Список записывают в квадратных скобках.
  • Индексация элементов начинается с нуля.
  • Индекс −1 обозначает последний элемент.
  • Список можно изменять после создания.
  • В срезе правая граница не включается.
  • Функция len возвращает число элементов списка.

Частые вопросы по теме

Как создать пустой список?

Пустой список записывают так: a = []. В нём пока нет элементов, но их можно добавить позднее, например методом append.

Почему первый элемент списка имеет индекс 0?

В Python индекс показывает смещение элемента от начала списка. Первый элемент не смещён, поэтому его индекс равен 0, а следующий имеет индекс 1.

Как получить последний элемент списка?

Последний элемент можно получить с помощью индекса −1: a[-1]. Отрицательные индексы отсчитываются от конца списка.

Чем срез отличается от обращения к одному элементу?

Обращение по индексу возвращает один элемент, например a[2]. Срез задаёт диапазон индексов и возвращает отдельный список, например a[1:4].

Как добавить новый элемент в конец списка?

Используйте метод append: a.append(x). Он добавит значение x после всех элементов списка.

Спросить по теме параграфа

§ 41. Списки

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
11 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.