ym97433607

Списки в Python

15 минут на чтение
24 апреля 2026
Попробуйте Гигачат
Он умеет работать с текстом, решать задачи, помогать с программированием, обсуждать разнообразные темы и генерировать изображения по описаниям.
Общение с GigaChat 2.0
Ввод голосом и озвучивание ответа
Поиск по интернету
Создание картинок
Работа с файлами
Создание открыток
Распознавание изображений
Умный редактор текста

В статье разбираем списки в Python: что это, как создавать, какие операции с ними существуют, какие ошибки допускают новички и как Гигачат поможет их избежать.

Что такое списки в Python

Списки — это один из типов данных языка Python. Их используют для хранения упорядоченных коллекций элементов. В отличие от строк и кортежей, списки изменяемы: после создания можно добавлять, удалять или изменять содержимое, не создавая новый объект.

Элементами списка могут быть любые объекты: строки, числа, логические значения, функции, другие списки. К элементам легко обращаться по индексам, а производительность остается высокой, даже если операций много.

Зачем нужны списки и где они применяются

Их используют почти во всех программах: везде, где нужно работать с набором данных. Приведем примеры:

  • хранение и обработка данных (однотипных или разнородных);
  • накопление результатов вычислений;
  • обработка пользовательского ввода;
  • алгоритмы;
  • работа с базами данных;
  • машинное обучение;

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

Создание списков в Python

Создание списка через квадратные скобки

Наиболее простой способ — записать элементы внутри квадратных скобок через запятую:

numbers = [1, 2, 3, 4, 5]

Если вы не знаете, какие элементы нужно внести, или создаете заготовку для добавления данных позже (например, в цикле), нужен пустой список:

empty = []

Как мы говорили выше, объекты могут быть любыми:

Python списки

Если внутри повторяется одно и то же значение, запись может выглядеть так:

zeros = [0] * 5 # [0, 0, 0, 0, 0]

Создание списка с помощью функции list()

Чтобы создать пустой список через list(), достаточно написать:

empty = list()

Особенность функции list() в том, что она умеет преобразовывать в список другие объекты:

Python списки 1

Это полезно, когда нужно получить доступ к элементам по индексам, изменить или отсортировать их.

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

Python списки 2

Доступ к элементам списка

Индексация элементов

Индекс — это порядковый номер элемента. В Python индексация начинается с нуля — первый элемент имеет индекс 0, второй — 1 и так далее. Чтобы найти значение по индексу, используется такой синтаксис:

numbers[индекс]

Например:

Python списки 3

Через индекс также можно изменить элемент:

Python списки 4

Если обратиться к индексу, которого не существует, Python выдаст ошибку IndexError. Чтобы избежать ее, используют функцию len() (возвращает длину списка):

len(numbers) # 5

Допустимые индексы при этом от нуля до 4.

Иногда к элементам можно обращаться через двойную индексацию:

Python списки 5

Отрицательная индексация

Отрицательные индексы полезны, когда нужно обратиться к элементам с конца. Последний элемент имеет индекс −1, предпоследний — −2 и так далее. Например:

Python списки 6

Это удобнее, чем использовать альтернативную запись:

numbers[len(numbers) — 1]

Срезы списков

Срезы — это механизм Python, который помогает получать части списков без циклов. Общий синтаксис имеет вид список[start:stop:step], где:

  • start — индекс, с которого срез начинается (включительно);
  • stop — индекс окончания среза;
  • step — шаг (значение по умолчанию — 1).

Простой пример:

Python списки 7

Параметры можно пропускать — тогда Python подставит значения по умолчанию:

Python списки 8

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

numbers[::-1] # [5, 4, 3, 2, 1]

Индекс также может быть отрицательным:

numbers[-4:-1] # [2, 3, 4]

С помощью срезов можно изменить значения:

numbers[1:3] = [10, 20] # [1, 10, 20, 4, 5]

Объединение и копирование списков

Наиболее простой способ объединить списки — использовать оператор +. В отличие от append(), он создает новый список, исходный при этом не меняется:

Python списки 9

Для копирования списков используют метод copy():

Python списки 10

Перебор элементов списка

Перебор с помощью цикла for

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

С помощью for можно вывести все элементы на экран:

Python списки 11

Но чаще цикл комбинируют с условными конструкциями:

Python списки 12

Если внутри списка есть вложенные структуры, используют вложенные циклы:

Python списки 13

Перебор с помощью функции enumerate()

Функция enumerate() возвращает пары: индекс и элемент. Например:

Python списки 14

Также она позволяет задать начальное значение индекса (иногда это удобнее для разработчика):

Python списки 15

С помощью enumerate() можно найти элемент по индексу:

Python списки 16

Методы списков Python

Методы добавления элементов (append, extend, insert)

append() добавляет один элемент в конец списка:

Python списки 16

Метод extend() добавляет в список все элементы из другого итерируемого объекта (строки, кортежи и т. д.):

Python списки 17

Метод insert() вставляет элемент по указанному индексу:

Python списки 18

Индексы всех элементов справа сдвинулись на 1.

Методы удаления элементов (remove, pop, clear)

remove() удаляет только первое найденное значение (не индекс) из списка:

Python списки 19

Если такого значения нет, Python выдаст ValueError.

Метод pop() удаляет элемент по индексу и возвращает его:

Python списки 20

Метод clear() очищает список (при этом сам объект не удаляется):

Python списки 21

Метод del() позволяет удалять срезы:

Python списки 22

Методы поиска и сортировки

Для поиска используют метод index() — он возвращает индекс первого совпадения:

Python списки 23

Есть метод count(), который позволяет узнать, сколько раз элемент встречается в списке:

Python списки 24

Хотя оператор in — не метод, его также используют для поиска, поэтому приведем пример с ним:

Python списки 25

Главный метод сортировки — sort():

Python списки 26

Обратите внимание: он меняет исходный список. Если нужно сохранить его вид, используют sorted(), который возвращает новый список:

Python списки 27

Генераторы списков (list comprehensions)

Генератор списка — это конструкция в Python, которая позволяет создать новый список из итерируемого объекта (или существующей последовательности) в одну строку. Например:

Python списки 28

Такая запись более читаемая и краткая, чем стандартный способ создания списка.

Сюда можно добавить условие:

Python списки 29

Типичные ошибки при работе со списками

  • Трудности с концепцией индексов. Начинающий разработчик может выходить за границы списка (из-за того, что значение последнего индекса на единицу меньше, чем длина) и допускать ошибки в работе с отрицательной индексацией. Обычно эта проблема решается практикой.
  • Непонимание разницы между sort() и sorted(). Метод sort() меняет исходный список и ничего не возвращает, поэтому при такой записи нельзя ожидать список:
Python списки 30

*Ошибки при копировании списка. Правильно использовать метод copy(), а такой код означает, что переменные a и b ссылаются на один объект:

Python списки 31

Как ИИ-помощник Гигачат помогает изучать списки Python

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

Простые объяснения сложных тем

Хотя в программировании есть сложные темы, большинство только кажутся такими из-за сложных формулировок. Нейросеть умеет адаптировать объяснения под уровень и запрос пользователя: например, иногда людям легче усваивать знания через аналогии из жизни.

Кроме того, ИИ может разбить тему на шаги: сначала дать теорию, потом показать код на Python и объяснить, что происходит в каждой строке. Дополнительно Гигачат сформулирует вопросы или задания, чтобы вы закрепили тему.

Генерация примеров кода под задачи пользователя

Опишите задачу Гигачату, и он напишет решающую ее программу несколькими способами. Рассматривая разные варианты, вы не только поймете, как сделать что-либо, но и найдете наиболее удобный способ.

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

Все это поможет учиться быстрее, поскольку не нужно будет тратить время на поиск конкретных примеров на форумах или в учебниках по Python.

Помощь в поиске и исправлении ошибок в коде

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

Гигачат умеет быстро анализировать код на Python, находить ошибки и объяснять, из-за чего они возникают. Он также генерирует исправленную версию программы, рассказывает, что изменилось и почему код стал работать.

Обучение через ошибки помогает лучше понять поведение списков, запомнить типичные проблемы в коде и писать корректные программы быстрее.

Ещё по теме
СберБанк обрабатывает Cookies с целью персонализации сервисов и для того, чтобы пользоваться сайтом было удобнее. Вы можете запретить обработку Cookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования Cookies
Подробно рассказываем, как CберБанк обрабатывает и защищает ваши данные на странице Sber Bank Privacy