Разверните OpenClaw в облаке в один клик
Вход/ Регистрация

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

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

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

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

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

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

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

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

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

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

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

    
employeeList = ["Евгений", "Екатерина", "Иван"] # создание небольшого списка, в который будет добавляться новый элемент print("Список сотрудников:", employeeList) # вывод в консольный терминал содержимого списка перед добавлением нового элемента print("Длина списка:", len(employeeList)) # вывод в консольный терминал длины списка перед добавлением нового элемента employeeList.append("Александр") # добавление нового элемента в конец списка print("Обновленный список сотрудников:", employeeList) # вывод в консольный терминал содержимого списка после добавлением нового элемента print("Обновленная длина списка:", len(employeeList)) # вывод в консольный терминал длины списка после добавлением нового элемента

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван'] Длина списка: 3 Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Александр'] Длина списка: 4

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

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

    
employeeList = ["Евгений", "Екатерина", "Иван"] employeeList.append("Александр", "Денис")

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

    
employeeList = ["Евгений", "Екатерина", "Иван"] print("Список сотрудников:", employeeList) print("Длина списка:", len(employeeList)) employeeList.append(["Александр", "Денис"]) # добавление в список другого списка элементов print("Обновленный список сотрудников:", employeeList) print("Обновленная длина списка:", len(employeeList))

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван'] Длина списка: 3 Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Иван', ['Александр', 'Денис']] Обновленная длина списка: 4

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

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

    
employeeList = [] employeeList.append("Абсолютный Работник") print("Список сотрудников:", employeeList)

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

    
Список сотрудников: ['Абсолютный Работник']

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

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

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

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

    
employeeList = ["Евгений", "Екатерина", "Иван"] print("Список сотрудников:", employeeList) print("Длина списка:", len(employeeList)) employeeList.extend(["Александр", "Анастасия"]) # добавление в список элементов другого списка employeeList.extend(("Дед", "Мороз")) # добавление в список элементов кортежа employeeList.extend("TIMEWEB") # добавление в список символов строки print("Обновленный список сотрудников:", employeeList) print("Обновленная длина списка:", len(employeeList))

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван'] Длина списка: 3 Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Александр', 'Анастасия', 'Дед', 'Мороз', 'T', 'I', 'M', 'E', 'W', 'E', 'B'] Обновленная длина списка: 14

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

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

    
employeeList = ["Евгений", "Екатерина", "Иван"] employeeListNew = ["Александр", "Анастасия"] employeeList += employeeListNew print("Обновленный список сотрудников:", employeeList) print("Обновленная длина списка:", len(employeeList))

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

    
Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Александр', 'Анастасия'] Обновленная длина списка: 5

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

    
employeeList = ["Евгений", "Екатерина", "Иван"] employeeListNew = ["Александр", "Анастасия"] employeeListCommon = employeeList + employeeListNew print("Список сотрудников:", employeeList) print("Длина списка:", len(employeeList)) print("") print("Список новых сотрудников:", employeeListNew) print("Длина списка новых сотрудников:", len(employeeListNew)) print("") print("Обновленный список сотрудников:", employeeListCommon) print("Обновленная длина списка:", len(employeeListCommon))

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван'] Длина списка: 3 Список новых сотрудников: ['Александр', 'Анастасия'] Длина списка новых сотрудников: 2 Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Александр', 'Анастасия'] Обновленная длина списка: 5

Вставка — insert()

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

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

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

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

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

    
employeeList = ["Евгений", "Екатерина", "Александр", "Денис", "Антон", "Иван"] print("Список сотрудников:", employeeList) print("Длина списка:", len(employeeList)) employeeList.insert(1, "Петр") # вставляем новый элемент под индексом 1 (в этом случае он станет вторым по счету, а остальные элементы сместятся вперед на одну позицию) print("Обновленный список сотрудников:", employeeList) print("Обновленная длина списка:", len(employeeList))

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Александр', 'Денис', 'Антон', 'Иван'] Длина списка: 6 Обновленный список сотрудников: ['Евгений', 'Петр', 'Екатерина', 'Александр', 'Денис', 'Антон', 'Иван'] Обновленная длина списка: 7

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

В начало

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

    
employeeList = ["Евгений", "Екатерина", "Александр", "Денис", "Антон", "Иван"] print("Список сотрудников:", employeeList) employeeList.insert(0, "Петр") # вставляем новый элемент под индексом 0, то есть в начало списка print("Обновленный список сотрудников:", employeeList)

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Александр', 'Денис', 'Антон', 'Иван'] Обновленный список сотрудников: ['Петр', 'Евгений', 'Екатерина', 'Александр', 'Денис', 'Антон', 'Иван']

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

В конец

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

    
employeeList = ["Евгений", "Екатерина", "Александр", "Денис", "Антон", "Иван"] print("Список сотрудников:", employeeList) employeeList.insert(len(employeeList), "Петр") # вставляем новый элемент на позицию последнего индекса print("Обновленный список сотрудников:", employeeList)

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Александр', 'Денис', 'Антон', 'Иван'] Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Александр', 'Денис', 'Антон', 'Иван', 'Петр']

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

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

В середину

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

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

    
employeeList = ["Евгений", "Екатерина", "Иван", "Анастасия"] print("Список сотрудников:", employeeList) # вставляем новый элемент ровно в середину списка employeeList.insert(int(len(employeeList) / 2), "Александр") # результат деления на 2 необходимо в явном виде преобразовать в переменную типа int print("Обновленный список сотрудников:", employeeList)

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Анастасия'] Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Александр', 'Иван', 'Анастасия']

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

    
# нечетное количество элементов employeeList = ["Евгений", "Екатерина", "Иван", "Анастасия", "Денис"] print("Список сотрудников:", employeeList) employeeList.insert(int(len(employeeList) / 2), "Александр") # по прежнему получаем индекс вставки через деление длины списка на 2 print("Обновленный список сотрудников:", employeeList)

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Анастасия', 'Денис'] Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Александр', 'Иван', 'Анастасия', 'Денис']

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

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

    
import math # подключение библиотеки математики, которая содержит метод округления в большую сторону # нечетное количество элементов employeeList = ["Евгений", "Екатерина", "Иван", "Анастасия", "Денис"] print("Список сотрудников:", employeeList) employeeList.insert(math.ceil(len(employeeList) / 2), "Александр") # по прежнему получаем индекс вставки через деление длины списка на 2 print("Обновленный список сотрудников:", employeeList)

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Анастасия', 'Денис'] Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Александр', 'Анастасия', 'Денис']

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

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

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

    
# функция множественной вставки по индексу def insertMany(index, listOriginal, listAddition): for element in listAddition: listOriginal.insert(index, element) index += 1 employeeList = ["Евгений", "Екатерина", "Иван", "Анастасия", "Денис"] employeeListNew = ["Петр", "Ангелина", "Ксения"] print("Список сотрудников:", employeeList) insertMany(2, employeeList, employeeListNew) print("Обновленный список сотрудников:", employeeList)

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Анастасия', 'Денис'] Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Петр', 'Ангелина', 'Ксения', 'Иван', 'Анастасия', 'Денис']

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

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

    
# импорт специального пространства имен, в котором находятся встроенные типы import builtins # обновленный класс list с функцией множественной вставки по индексу class list2(list): def insertMany(self, index, listAddition): for element in listAddition: self.insert(index, element) index += 1 # заменяем в пространстве имен встроенных типов класс list на list2 builtins.list = list2 employeeList = list(["Евгений", "Екатерина", "Иван", "Анастасия", "Денис"]) # новую версию списка необходимо создать с явным указанием типа employeeListNew = ["Петр", "Ангелина", "Ксения"] print("Список сотрудников:", employeeList) employeeList.insertMany(2, employeeListNew) # в методе обновленного класса list (list2) указывается индекс и список вставляемых элементов print("Обновленный список сотрудников:", employeeList)

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

    
Список сотрудников: ['Евгений', 'Екатерина', 'Иван', 'Анастасия', 'Денис'] Обновленный список сотрудников: ['Евгений', 'Екатерина', 'Петр', 'Ангелина', 'Ксения', 'Иван', 'Анастасия', 'Денис']

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

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

Москва
12 мес Скидка 10%
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.

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