Python список: вставка, присоединение и расширение коллекции

Раздел: Основы Python -> Операции со списками

Добавление элементов в список в Python

Основным и наиболее эффективным способом добавления одного элемента в конец списка является метод append. Он модифицирует исходный список, добавляя переданный объект в качестве последнего элемента, и не возвращает новое значение (возвращает None).

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

Python list element (получение элемента списка в python)

Типичная ошибка: попытка присвоить результат append переменной. Поскольку метод возвращает None, это приведет к потере ссылки на список.

my_list = [1,2,3]
new_list = my_list.append(4)
print(new_list)  # None

Python add to list (добавление элемента в список)

Правильно: вызывать append без присваивания.

Как добавить элемент в начало списка?

Для вставки на нулевую позицию применяется метод insert с индексом 0.

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

Python copy list (копирование списка в python)

Проблема: при использовании отрицательного индекса -1 элемент вставляется перед последним элементом, что не эквивалентно добавлению в конец. Для добавления в конец используйте append.

Как добавить несколько элементов в конец?

Метод extend принимает итерируемый объект и добавляет все его элементы по одному в конец списка.

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

Python list extend (метод extend для списка)

Аналогично работает оператор +=:

my_list = [1,2]
my_list += [3,4]
print(my_list)  # [1, 2, 3, 4]

Python list reverse (реверс списка в python)

Распространенная ошибка: использование append для добавления нескольких элементов. Append добавляет переданный список как один элемент, создавая вложенный список.

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

Python empty list (создание пустого списка)

Для добавления отдельных элементов используйте extend или +=.

Как вставить элемент на произвольную позицию?

Метод insert принимает индекс и значение. Если индекс больше длины списка, элемент добавляется в конец. Если отрицательный, отсчет идет от конца, но вставка происходит перед указанной позицией.

my_list = [10,20,30]
my_list.insert(1, 15)   # [10, 15, 20, 30]
my_list.insert(100, 40) # [10, 15, 20, 30, 40]
my_list.insert(-1, 35)  # [10, 15, 20, 30, 35, 40]

Python list slice (срезы списков в python)

Как объединить два списка без изменения исходных?

Оператор + создает новый список, содержащий элементы обоих списков.

a = [1,2]
b = [3,4]
c = a + b
print(c)  # [1,2,3,4]

Python filter list (фильтрация списка с помощью filter)

Это не модифицирует a или b.

Как добавить элементы из любого итерируемого объекта (например, кортежа, строки, генератора)?

Метод extend подходит для любых итерируемых объектов. При передаче строки добавляются отдельные символы.

my_list = [1,2]
my_list.extend("abc")
print(my_list)  # [1,2,'a','b','c']

Python list function (функции для работы со списками)

Если требуется добавить строку как единый элемент, используйте append.

Как добавить элемент в середину списка через срез?

Срезы позволяют заменить часть списка. Чтобы вставить элемент, можно использовать пустой срез с нужной позиции.

my_list = [1,2,4,5]
my_list[2:2] = [3]   # вставка на позицию 2
print(my_list)       # [1,2,3,4,5]

Python добавить элемент в массив (добавление элемента в конец списка (append) в python)

Аналогично можно вставить несколько элементов.

Как добавить элемент в список, используя распаковку?

Распаковка с помощью * позволяет создать новый список, включающий элементы исходного и новые.

original = [1,2]
new = [*original, 3, 4]
print(new)  # [1,2,3,4]

Это не изменяет исходный список, а создает новый.

- как заменить элемент в списке python (замена элемента в списке по индексу (list[2] = new_value) в python)
- количество элементов массива python (количество элементов в списке (массиве) с помощью len в python)
- Python 3 индекс элемента (получение индекса элемента в списке/строке python 3)

Расширенные примеры добавления элементов

1. Вставка перед последним элементом с помощью insert и отрицательного индекса

Пример
numbers = [10, 20, 30, 40]
numbers.insert(-1, 25)
print(numbers)  # [10, 20, 30, 25, 40]

2. Добавление элементов из генератора с фильтрацией

Пример
even_squares = [x**2 for x in range(1,6) if x%2==0]
my_list = [0]
my_list.extend(even_squares)
print(my_list)  # [0, 4, 16]

3. Использование среза для добавления в начало и конец

Пример
data = [2,3]
data[:0] = [1]   # вставить в начало
data[len(data):] = [4,5]  # вставить в конец (аналог extend)
print(data)  # [1,2,3,4,5]

4. Добавление элементов кортежа с помощью +=

Пример
lst = [1,2]
lst += (3,4)
print(lst)  # [1,2,3,4]

5. Ошибка при попытке цепочки вызовов append

Пример
lst = [1]
result = lst.append(2).append(3)  # AttributeError: 'NoneType' object has no attribute 'append'

6. Добавление вложенного списка и его распаковка с помощью extend

Пример
nested = [[1,2],[3,4]]
flat = []
flat.extend(nested)   # добавит два вложенных списка как элементы
print(flat)  # [[1,2],[3,4]]

# Если нужно распаковать вложенные элементы, используйте цепочку extend
flat2 = []
for sub in nested:
    flat2.extend(sub)
print(flat2)  # [1,2,3,4]

7. Использование __iadd__ для добавления

Пример
lst = [1,2]
list.__iadd__(lst, [3,4])
print(lst)  # [1,2,3,4]

8. Создание нового списка с помощью распаковки и изменение переменной

Пример
original = [1,2]
original = [*original, 3, 4]  # new object assigned to original
print(original)  # [1,2,3,4]

9. Добавление элемента в список с помощью метода __setitem__ через срез

Пример
lst = [1,2,5]
lst.__setitem__(slice(2,2), [3,4])  # вставить на позицию 2
print(lst)  # [1,2,3,4,5]

Добавление элемента в список - comments

En
Python add to list (python)