Всё по полочкам — темы этого гайда
Официальная документация сложна для новичков, а ролики на YouTube часто упускают важные детали. Я сам с этого начинал и знаю, как можно запутаться. Поэтому сделал простое и компактное руководство, которое за 30 минут прокачает твои навыки работы со списками в Python.
Список — это просто набор элементов, которые хранятся подряд. Как список покупок: записал новый товар — он появился внизу, вычеркнул — исчез. Для работы со списками в Python есть специальные методы — они и делают магию удобства. Например, добавляем элемент с помощью my_shopping_list.append('молоко'). Самые полезные методы разберём вместе — ниже по тексту.
10Python-слов, которые обязан знать каждый новичок
С этими терминами разберёшься в Python быстрее всех.
Основы списков: создание и доступ к элементам
Как создать список
Создать список — проще простого: бери переменную и указывай элементы в квадратных скобках.
Можешь сразу записать в него любые данные.
Python позволяет хранить в списках числа, строки, даже другие списки — полная свобода!
Как менять элементы списка вручную
Список уже есть? Легко заменить любой элемент прямо по индексу:
Число в скобках — это индекс элемента (первый — 0, второй — 1 и так далее).
Как получить нужный элемент
Нужно взять конкретную запись из списка? Легко:
В Python можно брать элементы и с конца, используя отрицательные индексы:
Совет: последний элемент — это -1, предпоследний — -2 и так далее. Нумерация с конца.
Циклы: перебираем все элементы
Цикл — это инструкция для Python выполнить одно и то же для каждого элемента списка. Например, у тебя три покупки, и ты хочешь посмотреть каждую по очереди — код будет таким:
Python "прогоняет" каждый элемент списка my_shopping_list через переменную item. Можно выводить item или делать с ним всё что угодно.
С каждым item можно творить что угодно — например, добавить в конце '!' и сразу вывести:
Срезы: берём только нужную часть
Если нужна только часть списка, используй срез. Исходный список не меняется, а ты получаешь новый — из выбранных элементов.
Например, первые два элемента:
Пиши индексы через двоеточие: от 0 до 2 (2 не включается). То есть, берёшь нулевой и первый элементы.
Если пропустить цифры перед/после двоеточия — получишь всё до нужного индекса или от него:
Вот пример для первых двух элементов:
Срезы наоборот: работаем с конца
Срезы отлично работают и с отрицательными индексами — с конца списка. -1 — это конец, -2 — предпоследний.
Пример: получаем всё с предпоследнего элемента до самого конца:
Ещё раз: -1 — это последний!
Как менять списки: добавление, удаление и сортировка
Когда нужно не просто заменить, а реально поменять структуру списка — используй стандартные методы Python.
append()
Метод append просто добавляет новый элемент в самый конец списка.
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: самая частая ошибка новичков!
Как одним приёмом убрать бардак с зависимостями в твоём проекте.
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru