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

    Команда Simple-Server
    03.06.2026
    12 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Чаще всего в логике большинства программ, написанных на 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():

    employeeList = ["Евгений", "Екатерина", "Иван"] print("Список сотрудников:", employeeList) print("Длина списка:", len(employeeList)) employeeList.extend(["Александр", "Анастасия"]) # добавление в список элементов другого списка employeeList.extend(("Дед", "Мороз")) # добавление в список элементов кортежа employeeList.extend("Simple-Server") # добавление в список символов строки 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

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

    Однако в языке 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)

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

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

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


    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны