Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

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

2817
12 минут чтения
Средний рейтинг статьи: 2

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

Доступ (добавление, изменение, удаление) к каждому элементу осуществляется по индексу. Индексация (нумерация) в списке начинается с нуля.

По сути, список аналогичен массиву в других языках программирования.

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

Все показанные примеры запускались на облачном сервере Timeweb Cloud под управлением операционной системы Ubuntu 22.04 с использованием интерпретатора Python версии 3.10.12.

В качестве альтернативного инструмента тестирования (запуска) кода Python можно использовать онлайн компиляторы:

Добавление — append()

Чаще всего в логике большинства программ, написанных на Python, необходимо просто добавить элемент в конец списка.

Для этого в языке Python есть соответствующий метод append():

    

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

    

Наглядно видно, после выполнения метода append() в конец списка добавился новый элемент.

Важно понимать, что функция append() добавляет элементы по одному. Например, такая конструкция вызовет ошибку:

    

При этом вызов метода append() со списком элементов в качестве единственного аргумента приведет к добавлению списка элементов, а не его содержимого по отдельности:

    

Консольный вывод этого скрипта будет таким:

    

Здесь четко видно, что добавленный в конец список стал новым элементом исходного списка.

Аналогично, можно добавить элемент в пустой список Python:

    

Консольный вывод будет таким:

    

Облачные серверы

Масштабируемые вычислительные ресурсы
по всему миру с почасовой оплатой.

Расширение — extend()

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

    

Консольный вывод этого примера будет таким:

    

Как видно, в отличие от append() метод extend() преобразует переданную в качестве аргумента переменную составного типа (в том числе строку) в последовательность элементов, которые вставляются в список в чистом виде.

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

    

Консольный вывод этого скрипта будет таким:

    

Либо можно создать новый список, оставив составляющие его списки в исходном состоянии:

    

В этом случае консольный вывод будет следующим:

    

Вставка — insert()

Показанные выше способы добавления элемента (или элементов) в список достаточно специализированы, а значит, и ограничены — все они вставляют новые элементы только в конец исходного списка.

Однако в языке Python есть и более универсальный метод insert(), который позволяет добавить элемент в список по индексу.

Это значит, что этот метод может вставить элемент как в начало списка, так и в конец. А еще в любую другую произвольную позицию. Например, ровно по середине.

В произвольную позицию

Чаще всего необходимо вставить новый элемент в любую произвольную позицию списка. То есть вставка выполняется по индексу с его возможным значением от 0 до длины списка:

    

Консольный вывод этого скрипта будет таким:

    

Как можно заметить, вставка нового элемента по индексу приводит к смещению всех последующих элементов на одну позицию вперед. В свою очередь длина списка также увеличивается.

В начало

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

    

Консольный вывод этого скрипта будет уже таким:

    

Аналогично, все последующие элементы смещаются на одну позицию вперед, а длина списка увеличивается.

В конец

Метод insert() можно использоваться в качестве альтернативы методу append() для вставки элемента в конец списка. В этом случае в качестве индекса указывается предварительно найденное значение длины списка:

    

В этом случае результат в консольном выводе полностью повторяет результат выполнения функции append().

    

Обратите внимание, что значение длины списка, полученное методом len(), соответствует значению индекса несуществующего элемента, который идет следом за самым последним.

Именно на это место и вставляется новый элемент, становясь последним элементом исходного списка.

В середину

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

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

    

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

    

Тем не менее ситуация, когда в списке четное количество элементов, бывает не всегда:

    

Консольный вывод будет таким:

    

В этом примере в списке было 5 элементов, которые были поделены на 2. Результат 2,5 был округлен в меньшую сторону до 2 в момент преобразования типа из float в int. Таким образом, вставляемый элемент окажется перед центральным элементом в середине списка.

Если требуется вставить элемент после центрального элемента, тогда необходимо выполнить округление дробного индекса (полученного делением длины списка на 2) в большую сторону:

    

В этом случае консольный вывод будет уже таким:

    

Добавление нескольких элементов по индексу

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

Такой метод придется написать вручную на основе стандартной функции insert():

    

Результат работы скрипта следующий:

    

Однако в созданной функции есть проблема — она не является частью списка. Было бы неплохо сделать так, чтобы функция insertMany() была методом переменной списка, подобно функциям append(), extend(), insert().

Язык Python позволяет это сделать:

    

Консольный вывод в этом случае будет аналогичным:

    

Таким образом можно добавить в список элементы другого списка на конкретную позицию.

Разверните свой Python-проект в облаке

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Заключение

В языке программирования Python добавление в список одного или нескольких элементов можно выполнить с помощью трех базовых функций:

  • append(). Добавляет элемент в конец списка.

  • extend(). Добавляет несколько элементов в конец списка.

  • insert(). Вставляет элемент по конкретному индексу списка.

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

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

Более подробную информацию о списках и их использовании можно найти в официальной документации Python.

2817
12 минут чтения
Средний рейтинг статьи: 2
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server