Списки (массивы) в Python: создание, индексация и методы
Тип данных list, квадратные скобки [], положительная и отрицательная индексация, срезы [::], методы append, pop, sort, функции len, sum, min, max.
До сих пор каждая переменная хранила ровно одно значение (одно число или одну строку). Однако в практических задачах необходимо хранить сотни и тысячи связанных данных — например, список фамилий учеников класса или температуру за каждый день месяца.
Список (list / одномерный массив) в Python — это упорядоченная изменяемая коллекция элементов произвольного типа данных.
Синтаксис создания списка: элементы перечисляются через запятую внутри квадратных скобок [ ]:
fruits = ["яблоко", "груша", "апельсин"]
emptylist = [] # Пустой список
В отличие от массивов в других языках (Pascal, C++), список в Python может содержать разнородные типы данных одновременно: mixed = [42, "текст", 3.14, True].
Список (list)
Изменяемость (Mutable)
Каждый элемент списка занимает строго определенное место и имеет свой порядковый номер — индекс.
ГЛАВНОЕ ПРАВИЛО: в Python индексация элементов ВСЕГДА начинается с НУЛЯ (0)!
Пусть задан список a = ["A", "B", "C", "D"]:
• Прямая индексация (слева направо): a[0] = "A", a[1] = "B", a[2] = "C", a[3] = "D";
• Отрицательная индексация (справа налево): Python позволяет обращаться к элементам с конца списка с помощью отрицательных индексов: a[-1] — самый последний элемент ("D"), a[-2] — предпоследний ("C").
Попытка обратиться по индексу, которого нет в списке (например, a[10]), вызовет критическую ошибку IndexError: list index out of range.
Индекс с 0
a[-1]
Перезапись по индексу
Чтобы изменить значение элемента списка, используют оператор присваивания: a[0] = 99 заменит первый элемент на число 99.
Для работы со списками в Python есть богатый арсенал встроенных инструментов:
Функции над списками:
• len(a) — возвращает количество элементов (длину) списка;
• sum(a) — вычисляет сумму всех числовых элементов списка;
• min(a) и max(a) — находят наименьший и наибольший элементы списка.
Основные методы списков (вызываются через точку: список.метод()):
• a.append(x) — добавляет элемент x в самый конец списка;
• a.insert(index, x) — вставляет элемент x на позицию index, сдвигая остальные элементы вправо;
• a.pop() — удаляет и возвращает последний элемент списка (или a.pop(index));
• a.remove(x) — удаляет первое найденное вхождение значения x из списка;
• a.sort() — сортирует элементы списка по возрастанию на месте;
• a.reverse() — разворачивает порядок элементов списка задом наперед.
append(x)
len()
Срез — это способ извлечь часть списка (подсписок) с помощью синтаксиса [start:stop:step]:
• a[1:4] — элементы с индексами 1, 2, 3 (правый индекс 4 не включается);
• a[:3] — первые три элемента (от начала до индекса 2);
• a[2:] — все элементы от индекса 2 до самого конца списка;
• a[::-1] — знаменитый трюк Python: разворот всего списка в обратном порядке с шагом -1.
