Найти в Дзене
Герман Геншин

Овладей списками в Python за 30 минут — и забудь о дилетантском коде!

Официальная документация сложна для новичков, а ролики на YouTube часто упускают важные детали. Я сам с этого начинал и знаю, как можно запутаться. Поэтому сделал простое и компактное руководство, которое за 30 минут прокачает твои навыки работы со списками в Python. Список — это просто набор элементов, которые хранятся подряд. Как список покупок: записал новый товар — он появился внизу, вычеркнул — исчез. Для работы со списками в Python есть специальные методы — они и делают магию удобства. Например, добавляем элемент с помощью my_shopping_list.append('молоко'). Самые полезные методы разберём вместе — ниже по тексту. 10Python-слов, которые обязан знать каждый новичок С этими терминами разберёшься в Python быстрее всех. Создать список — проще простого: бери переменную и указывай элементы в квадратных скобках. Можешь сразу записать в него любые данные. Python позволяет хранить в списках числа, строки, даже другие списки — полная свобода! Список уже есть? Легко заменить любой элемент пр
Оглавление

Всё по полочкам — темы этого гайда

Официальная документация сложна для новичков, а ролики на YouTube часто упускают важные детали. Я сам с этого начинал и знаю, как можно запутаться. Поэтому сделал простое и компактное руководство, которое за 30 минут прокачает твои навыки работы со списками в Python.

Список — это просто набор элементов, которые хранятся подряд. Как список покупок: записал новый товар — он появился внизу, вычеркнул — исчез. Для работы со списками в Python есть специальные методы — они и делают магию удобства. Например, добавляем элемент с помощью my_shopping_list.append('молоко'). Самые полезные методы разберём вместе — ниже по тексту.

10Python-слов, которые обязан знать каждый новичок

С этими терминами разберёшься в Python быстрее всех.

Основы списков: создание и доступ к элементам

Как создать список

Создать список — проще простого: бери переменную и указывай элементы в квадратных скобках.

Можешь сразу записать в него любые данные.

Python позволяет хранить в списках числа, строки, даже другие списки — полная свобода!

Как менять элементы списка вручную

Список уже есть? Легко заменить любой элемент прямо по индексу:

-2

Число в скобках — это индекс элемента (первый — 0, второй — 1 и так далее).

Как получить нужный элемент

Нужно взять конкретную запись из списка? Легко:

-3

В Python можно брать элементы и с конца, используя отрицательные индексы:

-4

Совет: последний элемент — это -1, предпоследний — -2 и так далее. Нумерация с конца.

Циклы: перебираем все элементы

Цикл — это инструкция для Python выполнить одно и то же для каждого элемента списка. Например, у тебя три покупки, и ты хочешь посмотреть каждую по очереди — код будет таким:

Python "прогоняет" каждый элемент списка my_shopping_list через переменную item. Можно выводить item или делать с ним всё что угодно.

-5

С каждым item можно творить что угодно — например, добавить в конце '!' и сразу вывести:

-6

Срезы: берём только нужную часть

Если нужна только часть списка, используй срез. Исходный список не меняется, а ты получаешь новый — из выбранных элементов.

Например, первые два элемента:

-7

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

Если пропустить цифры перед/после двоеточия — получишь всё до нужного индекса или от него:

-8

Вот пример для первых двух элементов:

-9

Срезы наоборот: работаем с конца

Срезы отлично работают и с отрицательными индексами — с конца списка. -1 — это конец, -2 — предпоследний.

Пример: получаем всё с предпоследнего элемента до самого конца:

-10

Ещё раз: -1 — это последний!

Как менять списки: добавление, удаление и сортировка

Когда нужно не просто заменить, а реально поменять структуру списка — используй стандартные методы Python.

append()

Метод append просто добавляет новый элемент в самый конец списка.

-11

insert()

insert делает то же, что и append, только добавляет элемент именно в ту позицию, которую укажешь.

Укажешь индекс 0 — будет новым началом, индекс 2 — станет третьим в списке.

Осторожно с очень длинными списками: insert в середину большого списка может тормозить — Python сдвигает все данные вправо.

remove()

remove() удаляет из списка первое найденное совпадение по значению — просто напиши, что убрать.

Сортировка списка

Python предлагает два способа сортировки:

sort меняет твой текущий список — порядок меняется прямо там же.

Видишь? Мы не создавали новый объект, просто отсортировали свой список.

sorted делает наоборот: возвращает НОВЫЙ список, а твой оригинал не трогает.

По сути, sorted — для случаев, когда исходный порядок тебе ещё пригодится.

Как использовать списки — и не ошибаться в логике

len: сколько всего элементов?

Хочешь узнать длину списка? Просто вызови функцию len — и получи результат.

Если больше нуля — значит, в списке есть хотя бы один элемент.

Списки в условиях: пустые и не пустые

Списки отлично работают в условиях (if): если в списке что-то есть — это True, если пусто — False.

Минимум кода — сразу видно, есть что-то в списке или нет.

Освой Python за 60 минут — хватит откладывать, начни сейчас!

Начни учиться Python прямо сегодня!

Как сравнивать списки

Важный нюанс: при сравнении списков учитывается, что внутри (состав и порядок элементов). Проверить равенство просто — оператор "==".

Но "идентичность" — другое: это когда две переменные указывают именно на один и тот же объект в памяти. Для этого есть оператор is:

in: найти нужный элемент

Нужно узнать, есть ли что-то в списке? Просто используй in — и получишь True/False.

Как превращать списки во что угодно

Map: меняем каждый элемент на лету

Map — универсальный инструмент, есть почти во всех языках. В Python — это способ применить функцию сразу ко всем элементам списка и получить новый.

Иначе говоря: ты задаёшь функцию, она обрабатывает каждый элемент, и результат собирается в новый список. Удобно, когда нужно что-то преобразовать массово.

Filter: оставляем только нужное

Filter похож на map, но вместо преобразования — фильтрует элементы. Если функция вернула True — элемент останется. False — Python выкинет его из нового списка.

Бонус: лайфхаки со списками, которые ты точно не знал

Списковые выражения — Python для гениев

Списковые выражения — самый крутой способ создавать новые списки на базе старых. Это как map, но ещё короче и удобнее.

Второй вариант из примера — то же самое, только с классическим кодом:

Глядя на оба примера, сразу видно, как проще и лаконичнее становится код с помощью выражений Python.

Распаковка списков: записываем всё по местам

Вручную доставать элементы из списка — неудобно и долго.

Распаковка позволяет сразу раскидать элементы по переменным красиво и понятно:

Число переменных слева должно точно совпадать с размером списка, иначе будет ошибка:

Чтобы всё заработало универсально, используй * перед одной из переменных — она "соберёт" лишние элементы в отдельный список:

Глубокое копирование: когда опасна обычная копия

Если работаешь не только с числами/строками, но и с объектами (или списками в списке) — помни: переменная хранит не сам объект, а ссылку на него!

Посмотри на пример ниже:

Если изменить один — изменится и другой: ты меняешь объект по его адресу — и это видно везде, где на него есть ссылка.

Это часто приводит к сложным и бессмысленным багам! Чтобы этого избежать, делаем глубокое копирование — deep copy:

deep copy проходит по вложенным объектам и копирует каждый заново — то есть рекурсивно создаёт новые адреса в памяти.

Теперь у тебя есть все инструменты для уверенного владения списками в Python! Готов прокачаться дальше? Посмотри мой гайд "Игры для старта в Python" или "Полезные скрипты для новичков". Советы по крутому стилю кода — тоже у меня: там есть еще фишки для прокачки списков, в том числе функции all и every.

Не делай ЭТО, когда начинаешь проект на Python: самая частая ошибка новичков!

Как одним приёмом убрать бардак с зависимостями в твоём проекте.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

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

Также подписывайтесь на нас в: