"Информатика (базовый уровень) (в 2 частях)", Под ред. Макаровой Н.В.
Список — это упорядоченная последовательность данных, которую можно изменять во время работы программы. В одном списке разрешено хранить числа, строки и другие значения, в том числе разных типов. Каждый элемент имеет индекс, а количество элементов определяет функция len(). Списки применяют для хранения исходных данных, результатов вычислений и последовательного перебора элементов.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Список — упорядоченная изменяемая последовательность элементов, которую записывают в квадратных скобках: [3, 8, 1]. Упорядоченность означает, что значения хранятся в определённой последовательности, а изменяемость позволяет добавлять, удалять и заменять элементы. Такой объект нужен, когда программе требуется работать сразу с набором данных.
Элемент списка — отдельное значение, занимающее определённую позицию в списке. Элементом может быть число, строка, логическое значение или даже другой список, поэтому в одной последовательности допустимы разные типы данных. Разделение на элементы позволяет обращаться к каждому значению отдельно и обрабатывать его по правилам задачи.
Индекс списка — номер позиции элемента. Отсчёт начинается с нуля, а отрицательные индексы позволяют считать с конца: -1 обозначает последний элемент, -2 — предпоследний. Индекс нужен, чтобы точно выбрать значение для чтения или изменения.
Длина списка — количество элементов в нём, которое определяет функция len(). Например, для списка [5, 6, 7] результат len([5, 6, 7]) равен 3. Длина помогает организовать перебор и проверить, существует ли нужная позиция.
Пустой список создают записью [], а список с начальными элементами — перечислением значений в квадратных скобках: числами, строками или их сочетанием. Например, данные = [12, "май", True] содержат элементы трёх типов. Такая гибкость удобна для хранения связанных сведений, хотя при обработке нужно учитывать особенности каждого типа.
Порядок элементов сохраняется, потому что список хранит их не как случайный набор, а как последовательность позиций. По индексу получают конкретное значение, например данные[0] возвращает первый элемент. Это позволяет обращаться к нужной части набора без просмотра всех остальных элементов.
Изменить элемент можно присваиванием по существующему индексу: оценки[1] = 5. Новый элемент добавляют в конец методом append(), вставляют на нужную позицию методом insert(), а удаляют с помощью del или метода remove(), если известно само значение. После вставки и удаления длина и индексы части списка изменяются, поэтому порядок действий имеет значение.
Срез получают записью список[начало:конец], например числа[1:4]. В него попадают элементы с индексами 1, 2 и 3, потому что правая граница не включается. Такое правило позволяет удобно задавать диапазоны и последовательно соединять соседние части без пересечения.
Наличие элемента проверяют оператором in: 7 in числа даёт True, если число найдено, и False в противном случае. Длину узнают через len(), а сами элементы часто обрабатывают циклом for. Вместе эти свойства позволяют проверять входные данные, считать значения, искать нужные объекты и строить алгоритмы обработки наборов.
В таблице собраны основные записи, которые применяют при работе со списками. В столбце «Результат» указано, что произойдёт после выполнения операции, а пример показывает конкретный случай. При чтении примеров обращайте внимание на индексы: после изменения списка они могут стать другими.
| Свойство или операция | Обозначение | Результат | Пример |
|---|---|---|---|
| Создание списка | [] или [элементы] | Создаётся список | а = [2, 4, 6] |
| Обращение к элементу по индексу | список[i] | Возвращается элемент с индексом i | а[1] → 4 |
| Обращение к элементу с отрицательным индексом | список[-i] | Отсчёт ведётся с конца | а[-1] → 6 |
| Изменение элемента | список[i] = значение | Старое значение заменяется | а[0] = 9 |
| Определение длины | len(список) | Возвращается число элементов | len(а) → 3 |
| Проверка принадлежности элемента | значение in список | Получается True или False | 4 in а → True |
| Добавление элемента в конец | список.append(значение) | Элемент появляется последним | а.append(8) |
| Вставка элемента по позиции | список.insert(i, значение) | Элемент занимает позицию i | а.insert(1, 3) |
| Удаление элемента | del список[i] | Элемент удаляется | del а[0] |
| Получение среза | список[a:b] | Создаётся часть списка | а[1:3] → [4, 6] |
Условие: создать список оценок, вывести его первый и последний элементы, а также количество оценок. Возьмём список [4, 5, 3, 5], чтобы показать обычную и отрицательную индексацию. Сначала нужно сохранить данные, затем выбрать позиции и отдельно определить длину.
Ответ: первый элемент — 4, последний — 5, количество оценок — 4.
Условие: изменить список покупок: заменить один товар, добавить товар в конец, вставить товар на заданную позицию и удалить ненужный товар. Пусть начальный список таков: покупки = ["хлеб", "молоко", "яблоки"]. Каждая операция меняет сам список, поэтому после неё нужно заново учитывать позиции.
Ответ: после последовательных действий список имеет вид ["хлеб", "чай", "кефир", "сыр"]. Индекс удаляемого товара выбирался уже после вставки, потому что она сдвинула элементы.
Условие: по списку чисел получить новый список из элементов с индексами от 1 до 3, найти в нём максимум и проверить наличие числа 10 в исходном списке. Пусть числа = [6, 10, 4, 8, 2]. Срез подходит для создания нового списка, так как он не изменяет исходные данные.
Ответ: новый список — [10, 4, 8], его максимальное значение — 10, заданное число содержится в исходном списке.
Обращение к элементу с индексом, равным длине списка, вызывает ошибку: последний допустимый индекс равен len(список) - 1. Так происходит, потому что длина считает элементы, а индексы начинаются с нуля. Перед обращением проверьте, что индекс находится в диапазоне от 0 до len(список) - 1.
Иногда первый элемент обозначают индексом 1, перенося в программу привычный счёт позиций. В Python первый индекс равен 0, поэтому запись список[1] обращается ко второму элементу. Проверьте себя на коротком списке и подпишите рядом с каждым значением его индекс.
Присваивание по индексу и append() выполняют разные действия: первое заменяет существующее значение, второе добавляет новое в конец. Ошибка возникает, когда хотят увеличить список, но случайно перезаписывают элемент. Сравните длину списка до и после операции: после append() она увеличится на один.
Удаление элементов во время последовательного перебора может пропустить некоторые значения. После удаления элементы справа сдвигаются, а цикл переходит к следующему индексу. Проверяйте индексы после каждого удаления или создавайте новый список с подходящими элементами.
До изучения списков нужны переменные и типы данных, чтобы хранить значения и понимать их свойства. Индексы помогают обращаться к позициям, а условные конструкции и циклы — проверять и обрабатывать элементы. Эти знания превращают отдельные операции со списком в алгоритм.
Списки используют для хранения наборов входных данных, результатов вычислений и последовательностей, которые нужно перебрать. Например, программа может принять оценки, изменить их и вывести обработанный результат. Один список заменяет множество однотипных переменных.
Дальше свойства списков пригодятся при изучении поиска и сортировки. Те же приёмы применяют для обработки строковых наборов и таблиц, представленных вложенными списками. Поэтому индексы, срезы и изменение элементов становятся основой более сложных алгоритмов.
Почему нумерация элементов списка начинается с нуля?
Индекс показывает смещение элемента от начала списка: первый элемент находится на нулевом расстоянии, поэтому его индекс равен 0. Такая система удобна для вычислений и используется во многих языках программирования.
Как обратиться к последнему элементу списка?
Используйте отрицательный индекс -1: список[-1]. Он обозначает последний элемент независимо от длины списка. Предпоследний элемент имеет индекс -2.
Чем append() отличается от присваивания по индексу?
Метод append() добавляет новый элемент в конец списка и увеличивает его длину. Присваивание по индексу заменяет уже существующий элемент, поэтому длина списка не меняется.
Почему при удалении элемента меняются индексы последующих элементов?
После удаления образуется свободное место, и все элементы справа сдвигаются на одну позицию влево. Поэтому их индексы уменьшаются на единицу.
Как получить копию части списка, не изменяя исходный список?
Для этого используют срез, например список[1:4]. Он создаёт новый список с элементами от индекса 1 до индекса 3, а исходный список остаётся прежним.
Объект «список» и его свойства