Гид по технологиям

Метод append в Python: как добавлять элементы в список

4 min read Python Обновлено 17 Apr 2026
Метод append в Python — руководство
Метод append в Python — руководство

TL;DR

Метод .append() добавляет один элемент в конец списка. Если в качестве элемента вы добавляете другой список или коллекцию, она будет вложена как единый элемент. Для добавления отдельных элементов используйте цикл for, list.extend(), или списковые включения.

Редактор кода с фрагментами, включая вызов метода append в Python

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

Как добавить значения в список с помощью append

Метод .append() добавляет один элемент в конец существующего списка. Общий вид:

FirstList = [1, 2, 'MUO']
Item = "Orange"
FirstList.append(Item)
print(FirstList)

Output: [1, 2, 'MUO', 'Orange']

Важно: если в качестве Item вы передаёте сам список, tuple, set или dict, append вставит этот объект как единый элемент, и в результате получится вложенный список:

Item = ["Orange"]
FirstList.append(Item)
print(FirstList)

Output: [1, 2, 'MUO', ['Orange']]

Ещё примеры с несколькими элементами:

FirstList = [1, 2, 5, 8]
Item = ["Orange", "Shoes", 5, 6]
FirstList.append(Item)
print(FirstList)

Output: [1, 2, 5, 8, ['Orange', 'Shoes', 5, 6]]

Можно добавлять вложенные структуры разной сложности:

FirstList = [1, (3, 7)]
Item = [5, {"2", 5}, {"Name":"Idowu"}, "Last item"]
FirstList.append(Item)
print(FirstList)

Output: [1, (3, 7), [5, {'2', 5}, {'Name': 'Idowu'}, 'Last item']]

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

Empty_list = []
New_list = [1, 4, 8, 6]
Empty_list.append(New_list)
print(Empty_list)

Output: [[1, 4, 8, 6]]

Использование append в цикле for

Когда нужно добавить поэлементно — без вложения — используйте цикл for. Это эквивалентно extend(), но даёт гибкость для вычислений или условий:

Empty_list = []
New_list = [1, 4, 8, 6]
for items in New_list:
    Empty_list.append(items)
print(Empty_list)

Output: [1, 4, 8, 6]

Тот же результат можно получить с помощью extend():

Empty_list = []
New_list = [1, 4, 8, 6]
Empty_list.extend(New_list)
print(Empty_list)

Output: [1, 4, 8, 6]

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

Когда полезен цикл с append

Цикл + append полезен, если вы фильтруете, трансформируете или условно добавляете элементы. Пример: вставить все чётные числа в заданном диапазоне:

My_list = [2, 4]
List_to_append = range(6, 20)
for new in List_to_append:
    if new % 2 == 0:
        My_list.append(new)
print(My_list)

Output: [2, 4, 6, 8, 10, 12, 14, 16, 18]

Или заполнить пустой список произведениями:

Empty_list = []
List_to_append = range(1, 5)
for new in List_to_append:
    new = new * 3
    Empty_list.append(new)
print(Empty_list)

Output: [3, 6, 9, 12]

append в функциях

Метод часто используют внутри функций для аккумулирования результатов:

def mat(data):
    lits = [1, 2]
    for datas in data:
        if datas % 2 == 0:
            lits.append(datas)
    return lits

print(mat(range(1, 20)))

Output: [1, 2, 2, 4, 6, 8, 10, 12, 14, 16, 18]

(В этом примере исходный список lits стартует с [1,2], поэтому 2 появляется дважды.)

Когда append не подходит (примеры и контрпримеры)

  • Если вы хотите объединить два списка поэлементно, append создаст вложенный список, чего не нужно. В таких случаях лучше extend() или оператор +.
  • Для массового добавления без условий extend() обычно проще и быстрее.
  • Для создание списка на основе преобразования или фильтрации list comprehension короче и часто эффективнее.

Контрпример: вы хотите объединить все элементы списков a и b в один плоский список. append даст nested-list; extend() развернёт элементы.

Альтернативы и подходы

  • list.extend(iterable) — добавляет все элементы iterable по одному.
  • Конкатенация: new = a + b — создаёт новый список (копирование данных).
  • Списковые включения (list comprehensions): [f(x) for x in iterable if cond(x)].
  • itertools.chain() — для ленивой композиции нескольких итерируемых.
  • Распаковка: a = [a, b] — явное создание нового списка.

Выбор зависит от требований к памяти, скорости и читаемости.

Ментальные модели и эвристики

  • append = добавить один объект в конец.
  • extend = «развернуть» и добавить элементы по одному.
  • Если в коде нужна проверка/условие/преобразование — склоняйтесь к for + append или comprehension.
  • Для больших объёмов данных избегайте частых расширений через конкатенацию (operator +) — это создаёт копии.

Контрольный список при использовании append

  • Нужен ли вложенный список или плоский? Если плоский — используйте extend или итерацию.
  • Есть ли условия/преобразования? Если да — for+append или comprehension.
  • Требуется ли сохранить порядок? append сохраняет порядок добавления.
  • Важна ли производительность? Для массовых операций используйте extend, itertools или пред-резервирование (в целом Python списки динамические).

Шпаргалка: часто используемые шаблоны

  • Добавить один элемент: lst.append(x)
  • Добавить все элементы другого списка: lst.extend(other)
  • Создать список с вычислением: [x*3 for x in seq if cond(x)]
  • Аккумуляция в функции:
def collect(iterable):
    res = []
    for x in iterable:
        if condition(x):
            res.append(transform(x))
    return res

Критерии приёмки

  • Функция возвращает список с ожидаемыми элементами в правильном порядке.
  • Нет лишнего вложения списков, если ожидался плоский список.
  • Производительность приемлема для объёма данных (ручные тесты/профилирование).

Короткий глоссарий

  • append — метод списка, добавляет единичный элемент.
  • extend — метод списка, добавляет элементы из итерируемого объекта.
  • list comprehension — способ создать список через выражение и цикл.

Набор тестов (минимальные)

  • Добавление одного элемента: [] -> append(1) -> [1]
  • Добавление списка: [] -> append([1,2]) -> [[1,2]]
  • Поэлементная вставка: [] -> for x in [1,2]: append(x) -> [1,2]
  • Совместимость с range, tuple, set.

Диаграмма принятия решения

flowchart TD
    A[Нужно добавить элементы?] --> B{Добавляем один объект}
    B -- Да --> C[Используйте append]
    B -- Нет --> D{Объект итерируемый и нужен плоский список}
    D -- Да --> E[Используйте extend или unpacking]
    D -- Нет --> F[Используйте for+append или comprehension]

Вывод

Метод .append() прост и надёжен. Он особенно удобен при поэтапном сборе данных, когда вам нужно добавлять элементы условно или после вычислений. Но помните о различии между append и extend: одно добавляет объект как целое, другое разворачивает и добавляет элементы по одному. Выбирайте подходящий инструмент в зависимости от требуемого результата.

Примечание

Важно понимать поведение append, чтобы избежать неожиданных вложений и ошибок в логике программы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Почему iPhone и iPad нагреваются и как это исправить
Мобильные устройства

Почему iPhone и iPad нагреваются и как это исправить

Как искать жильё на Airbnb для отпуска
Путешествия

Как искать жильё на Airbnb для отпуска

Arduino Pong: ретро-игра на TV
Arduino

Arduino Pong: ретро-игра на TV

Как подготовиться к идеальному Дню благодарения
Праздники

Как подготовиться к идеальному Дню благодарения

Планирование групповой поездки с друзьями
Путешествия

Планирование групповой поездки с друзьями

DATEDIF в Google Sheets: считать разницу между датами
Google Sheets

DATEDIF в Google Sheets: считать разницу между датами