Списки в Python с нуля: методы, срезы и list comprehension — интерактивный курс (20 уроков)
Главная структура данных: один список — и таблицы, и стеки, и очереди
Редакция Питоники

Список — структура, с которой начинающий работает чаще всего: корзина магазина, строки отчёта, список задач, ячейки таблицы. Умея работать со списком, ты умеешь хранить и обрабатывать почти любые данные программы.
Двадцать уроков ведут от первого списка до уверенного владения: append и insert, remove, pop и del, len и индексы, срезы, проверка in, min, max и sum, sort против sorted, вложенные списки, list comprehension с условиями, zip для параллельных списков, подводный камень копирования, join и split, полный обзор методов — и финальный проект: инвентарь магазина на списках.
Каждый блок исполняется в браузере: срезы и методы видны в живом выводе, сравнение со строками и словарями — по ходу.
Чему научитесь
- Создавать списки и обращаться к элементам
- Добавлять элементы: append, insert, extend
- Удалять элементы: remove, pop, del
- Получать длину через len и считать суммы
- Резать списки срезами, включая шаг
- Проверять принадлежность через in
- Сортировать списки: sort против sorted
- Строить вложенные списки-таблицы
- Писать list comprehension с условиями
- Связывать параллельные списки через zip
Для кого: Тем, кто пишет первый код на Python и хочет главную структуру данных — от корзины товаров до таблиц отчёта.
- Урок 1. Список в Python: первый список и элементы в квадратных скобкахТри товара — не три переменных, а один список в квадратных скобках. Первый список, чтение элемента по индексу, замена на месте и пустой список для будущей корзины.15 мин
- Урок 2. Python append: добавляем элемент в конец спискаappend кладёт один элемент в конец списка и меняет список на месте. Метод возвращает None — поэтому строка nums = nums.append(x) теряет список.15 мин
- Урок 3. Python insert и extend: вставка по индексу и добавление пачкойinsert ставит элемент по индексу и сдвигает остальных вправо, extend раскладывает пачку на отдельные элементы. Оба меняют список на месте и возвращают None.15 мин
- Урок 4. Python удалить элемент из списка: remove, pop и delremove убирает по значению, pop снимает элемент и возвращает его, del режет по индексу. Каждый падает по-своему — покажем и обезвредим.15 мин
- Урок 5. Python длина списка: len и подсчёт элементовlen(cart) отвечает, сколько элементов в списке: одна функция вместо цикла с ручным счётчиком. Пустой список — длина 0, число длины не имеет.15 мин
- Урок 6. Python индексы списка: с нуля и с конца, IndexErrorПервый элемент списка — индекс 0, последний — -1. Отрицательные индексы считают с конца, а выход за границу падает с IndexError.15 мин
- Урок 7. Python срезы списка: [1:4], отрицательные границы и шагСрез nums[1:4] берёт элементы с индексами 1, 2 и 3 — правая граница не входит. Опущенные границы, минус-индексы и шаг [::-1] для разворота.15 мин
- Урок 8. in в Python: есть ли элемент в спискеОдин оператор вместо цикла с флагом: in задаёт списку вопрос есть ли элемент и отвечает True или False. Разбираем ответ, перевёрнутый not in и коварное сравнение целиком.15 мин
- Урок 9. min, max и sum в Python: агрегаты списка одной строкойОтчёту нужны числа: сумма чека, самая дорогая позиция, средний балл. Три встроенные функции — sum, min и max — отвечают на все эти вопросы одной строкой, без цикла-аккумулятора.15 мин
- Урок 10. sort и sorted в Python: упорядочиваем списокДва инструмента сортировки: метод sort переставляет элементы в самом списке, функция sorted отдаёт новый список и оставляет исходный цел. Ловушка None, убывание через reverse и сюрпризы строк.15 мин
- Урок 11. Вложенный список в Python: список списков и таблицыОдин список — лента значений, но элементом списка может быть другой список: чек из позиций, поле 3 на 3, расписание по дням. Два индекса подряд, цикл в цикле и ловушка размноженных строк.15 мин
- Урок 12. List comprehension в Python: генератор списковЗадача из списка цен получить список скидок повторяется постоянно — и решается одной формулой вместо цикла из трёх строк. Разбираем list comprehension по частям: выражение, источник и почему исходный список остаётся цел.15 мин
- Урок 13. Comprehension с условием if: фильтр списка в PythonВ новый список часто нужны не все элементы, а только подходящие: чётные числа, дорогие товары, имена на нужную букву. Условие if внутри comprehension фильтрует список одной строкой — а вот if-else делает другое, и путать их нельзя.15 мин
- Урок 14. Zip в Python: параллельные списки в парыТовары лежат в одном списке, цены — в другом, а идти по ним нужно синхронно. Функция zip собирает пары одной строкой: цикл без индексов, обрезание по кратнейшему и unzip через звёздочку.15 мин
- Урок 15. Копия списка в Python: b = a не копияb = a выглядит как копия, но создаёт вторую ссылку на тот же список: правки через b видны в a. Три способа скопировать по-настоящему и ловушка вложенных списков.15 мин
- Урок 16. Join и split в Python: строка и списокДанные приходят строкой «молоко,хлеб,сыр», а работать с ними удобнее списком. split режет строку на части, join склеивает обратно — мост между двумя мирами.15 мин
- Урок 17. Методы списков Python: полный обзор и шпаргалкаК середине курса накопился весь арсенал: append, remove, pop, sort — и три метода ещё впереди. index, count, reverse, clear и copy плюс правило None — карта всех методов списка.15 мин
- Урок 18. Задачи на списки Python с решениямиТри классические задачи собеседований и домашних работ: дедупликация с сохранением порядка, второй максимум, чередование списков. Плюс сдвиг на N — и каждая решается тем, что уже пройдено.15 мин
- Урок 19. Распаковка списка в Python: звёздочка и остатокname, price = пара без индексов, swap одной строкой, *rest забирает остаток, print(*items) печатает без скобок. Одна звёздочка — четыре приёма, которые сжимают списочный код вдвое.15 мин
- Урок 20. Проект на Python: инвентарь магазина на спискахФинальный проект: маленький магазин — товары, цены и остатки в трёх параллельных списках. zip собирает записи, sum и max считают агрегаты, сортировка даёт топ, comprehension находит дефицит — и всё складывается в отчёт.25 мин