Append: примеры (PYTHON)

Функция append в Python: добавление элементов в список
Раздел: Списки, Модификация коллекций
append(object): None

Описание функции append

Метод append() принадлежит типу данных list (список) в Python. Он предназначен для добавления одного нового элемента в конец существующего списка. Это один из основных способов модификации списков на месте.

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

Синтаксис и аргументы:
list.append(item)
Метод принимает один обязательный аргумент item. Это может быть объект любого типа данных (целое число, строка, другой список, словарь, пользовательский объект и т.д.). Элемент добавляется в конец списка в том виде, в котором передан.

Возвращаемое значение: Метод не возвращает новое значение. Он изменяет исходный список напрямую. Возвращаемым значением является None. Поэтому конструкция new_list = old_list.append(x) приведет к тому, что new_list будет иметь значение None.

Базовые примеры использования

Добавление элемента простого типа в список.

numbers = [1, 2, 3]
numbers.append(4)
print(numbers)
[1, 2, 3, 4]

Добавление элемента составного типа. В список добавляется один элемент - другой список.

data = [10, 20]
data.append([30, 40])
print(data)
[10, 20, [30, 40]]

Метод всегда возвращает None.

my_list = []
result = my_list.append('test')
print(f'Список: {my_list}')
print(f'Результат метода: {result}')
print(result is None)
Список: ['test']
Результат метода: None
True

Похожие методы для списков в Python

list.extend(iterable) - добавляет в конец списка не один элемент, а все элементы из переданного итерируемого объекта (списка, кортежа, строки). Эффективен для объединения списков.

a = [1, 2]
a.extend([3, 4])
print(a) # [1, 2, 3, 4]

list.insert(index, item) - вставляет элемент на определенную позицию по индексу, а не только в конец. Требует больше вычислительных ресурсов для операций в начале списка.

a = [1, 3]
a.insert(1, 2)
print(a) # [1, 2, 3]

Сравнение: append(x) добавляет объект x целиком как один элемент. extend([x]) добавит элементы итерируемого объекта, то есть для добавления одного элемента x потребуется обернуть его в список. insert(len(list), x) работает аналогично append(x), но менее читаем.

Аналоги функции в других языках

JavaScript: Метод push() для массивов. В отличие от Python, возвращает новую длину массива.

let arr = [1, 2];
let newLength = arr.push(3);
console.log(arr); // [1, 2, 3]
console.log(newLength); // 3

PHP: Функция array_push(). Может добавлять несколько элементов. Возвращает новое количество элементов в массиве.

$arr = [1, 2];
$count = array_push($arr, 3);
echo json_encode($arr); // [1,2,3]
echo $count; // 3

Java (ArrayList): Метод add(). Аналогичен по действию, возвращает boolean (всегда true для ArrayList).

import java.util.ArrayList;
ArrayList list = new ArrayList<>();
list.add(1);
list.add(2);
System.out.println(list); // [1, 2]

C# (List<T>): Метод Add(). Возвращает void (аналог None).

using System.Collections.Generic;
var list = new List {1, 2};
list.Add(3);
// list = [1, 2, 3]

Go: Встроенная функция append(). Работает со срезами (slices), возвращает новый срез (оригинальный может остаться неизменным, если не хватило емкости).

package main
import "fmt"
func main() {
    slice := []int{1, 2}
    slice = append(slice, 3) // важно переприсвоить
    fmt.Println(slice) // [1 2 3]
}

Kotlin: Метод add() для изменяемых списков (MutableList). Возвращает true.

val list = mutableListOf(1, 2)
list.add(3)
println(list) // [1, 2, 3]

Lua: Функция table.insert(). По умолчанию добавляет элемент в конец таблицы, представленной как массив.

local tbl = {1, 2}
table.insert(tbl, 3)
print(table.concat(tbl, ', ')) -- 1, 2, 3

SQL: Прямого аналога нет. Для добавления строки в таблицу используется оператор INSERT, что концептуально отличается от работы со списками в памяти.

Распространенные ошибки

Путаница с возвращаемым значением. Ожидание, что метод вернет измененный список.

# Неправильно
my_list = [1, 2]
new_list = my_list.append(3)
print(new_list) # None
None

Попытка использования метода на объекте, не являющемся списком.

# Неправильно
my_tuple = (1, 2)
my_tuple.append(3) # AttributeError
AttributeError: 'tuple' object has no attribute 'append'

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

def foo():
    print('Hello')
    # Функция не возвращает значение (возвращает None)

items = [1, 2]
items.append(foo()) # В список добавляется None, а не функция foo
print(items)
Hello
[1, 2, None]

Намерение добавить несколько элементов по отдельности, но передача их одним кортежем или списком, что приводит к добавлению одной коллекции.

# Возможно, имелось в виду extend()
letters = ['a', 'b']
letters.append(('c', 'd'))
print(letters) # ['a', 'b', ('c', 'd')], а не ['a', 'b', 'c', 'd']
['a', 'b', ('c', 'd')]

Изменения в последних версиях Python

Метод list.append() остается неизменным и стабильным на протяжении многих версий Python 3. Его поведение и сигнатура не претерпели изменений. В стандартной библиотеке Python методы, изменяющие структуры данных на месте, как правило, очень консервативны к изменениям для сохранения обратной совместимости.

Расширенные примеры применения

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

Пример python
evens = []
for i in range(10):
    if i % 2 == 0:
        evens.append(i)
print(evens)
[0, 2, 4, 6, 8]

Добавление элементов разных типов, включая None и функции.

Пример python
complex_list = []
complex_list.append(42)
complex_list.append('Строка')
complex_list.append(None)
complex_list.append(lambda x: x**2)
print(complex_list)
print(complex_list[3](5)) # Вызов лямбда-функции из списка
[42, 'Строка', None,  at 0x...>]
25

Создание многомерных структур (матриц).

Пример python
matrix = []
for i in range(3):
    row = []
    for j in range(3):
        row.append(i * 10 + j)
    matrix.append(row)
print(matrix)
[[0, 1, 2], [10, 11, 12], [20, 21, 22]]

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

Пример python
base = [1, 2]
additional = []
value = 3
# Добавим value и еще одно число, если условие верно
base.append(value)
if value > 2:
    additional.append(value * 2)
base += additional
print(base)
[1, 2, 3, 6]

Модификация списка во время его итерации. Требует осторожности, но возможна.

Пример python
items = [1, 2]
for x in items[:]: # Итерируемся по копии списка
    if x == 2:
        items.append(3) # Добавляем в оригинальный список
print(items)
[1, 2, 3]

Совместное применение append() и pop() для реализации стека (LIFO).

Пример python
stack = []
stack.append('a') # push
stack.append('b')
print(stack.pop()) # pop
print(stack)
b
['a']

питон append function comments

En
Append Add element to list