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

Объект «список» и его свойства

"Информатика (базовый уровень) (в 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 или False4 in а → True
Добавление элемента в конецсписок.append(значение)Элемент появляется последнима.append(8)
Вставка элемента по позициисписок.insert(i, значение)Элемент занимает позицию iа.insert(1, 3)
Удаление элементаdel список[i]Элемент удаляетсяdel а[0]
Получение срезасписок[a:b]Создаётся часть спискаа[1:3] → [4, 6]

Разбор задач

Задача 1

Условие: создать список оценок, вывести его первый и последний элементы, а также количество оценок. Возьмём список [4, 5, 3, 5], чтобы показать обычную и отрицательную индексацию. Сначала нужно сохранить данные, затем выбрать позиции и отдельно определить длину.

  1. Создаём список: оценки = [4, 5, 3, 5].
  2. Первый элемент получаем выражением оценки[0], последний — оценки[-1].
  3. Количество элементов находим функцией len(оценки), результат равен 4.

Ответ: первый элемент — 4, последний — 5, количество оценок — 4.

Задача 2

Условие: изменить список покупок: заменить один товар, добавить товар в конец, вставить товар на заданную позицию и удалить ненужный товар. Пусть начальный список таков: покупки = ["хлеб", "молоко", "яблоки"]. Каждая операция меняет сам список, поэтому после неё нужно заново учитывать позиции.

  1. Заменяем второй элемент: покупки[1] = "кефир".
  2. Добавляем товар в конец: покупки.append("сыр").
  3. Вставляем товар на позицию 1: покупки.insert(1, "чай").
  4. Удаляем ненужный товар по индексу 3: del покупки[3].

Ответ: после последовательных действий список имеет вид ["хлеб", "чай", "кефир", "сыр"]. Индекс удаляемого товара выбирался уже после вставки, потому что она сдвинула элементы.

Задача 3

Условие: по списку чисел получить новый список из элементов с индексами от 1 до 3, найти в нём максимум и проверить наличие числа 10 в исходном списке. Пусть числа = [6, 10, 4, 8, 2]. Срез подходит для создания нового списка, так как он не изменяет исходные данные.

  1. Получаем часть списка: выбранные = числа[1:4], поэтому выбранные равны [10, 4, 8].
  2. Находим наибольшее значение перебором: сравниваем элементы и получаем максимум 10.
  3. Проверяем принадлежность выражением 10 in числа; результатом будет True.

Ответ: новый список — [10, 4, 8], его максимальное значение — 10, заданное число содержится в исходном списке.

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

Обращение к элементу с индексом, равным длине списка, вызывает ошибку: последний допустимый индекс равен len(список) - 1. Так происходит, потому что длина считает элементы, а индексы начинаются с нуля. Перед обращением проверьте, что индекс находится в диапазоне от 0 до len(список) - 1.

Иногда первый элемент обозначают индексом 1, перенося в программу привычный счёт позиций. В Python первый индекс равен 0, поэтому запись список[1] обращается ко второму элементу. Проверьте себя на коротком списке и подпишите рядом с каждым значением его индекс.

Присваивание по индексу и append() выполняют разные действия: первое заменяет существующее значение, второе добавляет новое в конец. Ошибка возникает, когда хотят увеличить список, но случайно перезаписывают элемент. Сравните длину списка до и после операции: после append() она увеличится на один.

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

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

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

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

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

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

  • Список — упорядоченная изменяемая последовательность элементов.
  • Индексация списка начинается с нуля.
  • Индекс -1 обозначает последний элемент списка.
  • Количество элементов списка определяет функция len().
  • Элемент можно изменить по индексу, не создавая новый список.
  • Срез выделяет часть списка, причём правая граница не включается.
  • При изменении списка нужно учитывать изменение его длины и индексов.

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

Почему нумерация элементов списка начинается с нуля?

Индекс показывает смещение элемента от начала списка: первый элемент находится на нулевом расстоянии, поэтому его индекс равен 0. Такая система удобна для вычислений и используется во многих языках программирования.

Как обратиться к последнему элементу списка?

Используйте отрицательный индекс -1: список[-1]. Он обозначает последний элемент независимо от длины списка. Предпоследний элемент имеет индекс -2.

Чем append() отличается от присваивания по индексу?

Метод append() добавляет новый элемент в конец списка и увеличивает его длину. Присваивание по индексу заменяет уже существующий элемент, поэтому длина списка не меняется.

Почему при удалении элемента меняются индексы последующих элементов?

После удаления образуется свободное место, и все элементы справа сдвигаются на одну позицию влево. Поэтому их индексы уменьшаются на единицу.

Как получить копию части списка, не изменяя исходный список?

Для этого используют срез, например список[1:4]. Он создаёт новый список с элементами от индекса 1 до индекса 3, а исходный список остаётся прежним.

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

Объект «список» и его свойства

Учебник

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