> For the complete documentation index, see [llms.txt](https://bemind.gitbook.io/neural/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bemind.gitbook.io/neural/python/python-lists/python-list-extend-kak-dobavit-neskolko-elementov-v-spisok.md).

# Python List Extend: Как добавить несколько элементов в список

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

К концу этого руководства вы научитесь:

* Как работает метод расширения списка Python
* Как добавить один или несколько элементов в список с помощью метода расширения
* Сравнение этого метода с различными способами добавления элементов в список Python
* Сравнение производительности различных методов для больших списков

Оглавление

* [Понимание метода расширения списка Python](#ponimanie-metoda-rasshireniya-spiska-python)
* [Как добавить несколько элементов в список с помощью Python Extend](#kak-dobavit-neskolko-elementov-v-spisok-v-python)
* [Расширение списка Python против добавления](#rasshirenie-spiska-v-python-extend-po-sravneniyu-s-dobavleniem-elementa-append)
* [Расширение списка Python против оператора плюс (+)](#rasshirenie-spiska-v-python-s-pomoshyu-metoda-extend-v-sravnenii-s-operatorom-slozheniya)
* [Сравнение производительности добавления элементов в список в Python](#sravnenie-proizvoditelnosti-dobavleniya-elementov-v-spisok-v-python)
* [Заключение](#zaklyuchenie)
* [Дополнительные ресурсы](#dopolnitelnye-resursy)

### Понимание метода расширения списка Python

**Метод `extend()` в Python принимает все элементы другого итерируемого объекта (такого как список, кортеж, строка) и добавляет их в конец списка.** Это дает ему ключевое преимущество перед методом `.append()`, который может добавить в список только один элемент.

Давайте рассмотрим несколько ключевых особенностей метода `.extend()` в Python:

* Метод принимает в качестве параметра итерируемый объект, такой как список, кортеж или строка.
* Метод изменяет исходный список, но ничего не возвращает.

Давайте изучим синтаксис метода `.extend()` для списка в Python:

```python
# Понимание метода list.extend()
list.extend(iterable)
```

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

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

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

Теперь, когда вы поняли, как работает метод, давайте рассмотрим пример. Начнем с двух списков и добавим один к другому.

```python
# Добавление нескольких элементов к списку с помощью list.extend()
list1 = [1, 2, 3]
list2 = [4, 5]

list1.extend(list2)  # Добавляет элементы списка list2 в конец списка list1
print(list1)  # Выводит объединенный список

# Возвращает: [1, 2, 3, 4, 5]
```

Мы видим, что каждый элемент добавляется последовательно в список, который расширяется. Ниже приведенное изображение немного подробнее разбирает это:

<figure><img src="/files/ONPfqlX2yJGm6lcxKAAP" alt=""><figcaption><p>Понимание метода Python List .extend(</p></figcaption></figure>

Мы видим, что каждый элемент в списке добавлен в исходном порядке. Как вы узнаете позже, использование метода `.extend()` является самым быстрым способом добавить несколько элементов в список.

#### Расширение Списка Python Одним Элементом

Теперь, когда вы поняли, как работает метод, давайте рассмотрим некоторые его особенности. Когда мы хотим добавить один элемент в наш список с помощью метода `.extend()`, нам нужно быть внимательными к тому, как мы это делаем.

Давайте сначала рассмотрим, как добавить одно число к нашему списку:

```python
# Добавление одного элемента к списку с помощью .extend()
list1 = [1, 2, 3]

list1.extend([4])  # Добавляет элемент в виде списка
print(list1)

# Raises: TypeError: 'int' object is not iterable
```

Это вызывает `TypeError`, поскольку метод `.extend()` ожидает объект-итерируемый. Чтобы добавить один элемент, нам нужно создать его в виде списка, кортежа или другого объекта итерируемого типа. Давайте посмотрим, как мы можем добавить один элемент в метод `.extend()`

```python
# Добавление одного элемента к списку с помощью .extend()
list1 = [1, 2, 3]

list1.extend([4])  # Добавляет элемент в виде списка
print(list1)

# Возвращает: [1, 2, 3, 4]
```

Мы видим, что при передаче списка, содержащего только один элемент, метод работает как ожидается.

Давайте теперь рассмотрим другой пример, где у нас есть список строк. Мы можем попытаться добавить к нему еще одну строку с использованием метода `.extend()`

```python
# Добавление строки к списку с использованием .extend()
list1 = ['welcome', 'to']
list1.extend('datagy')  # Добавляет каждый символ строки в список
print(list1)

# Возвращает:
# ['welcome', 'to', 'd', 'a', 't', 'a', 'g', 'y']
```

Мы можем видеть, что мы действительно не получили то, что хотели! Хотя метод не вызвал `TypeError`, он добавил каждую букву отдельно. Это произошло потому что строка является итерируемым объектом, это означает, что Python интерпретировал наше желание итерировать по строке и добавлять каждую букву по отдельности.

Чтобы добавить строку как единственный элемент, ее необходимо передать в список или другой итерируемый контейнер.

```python
# Добавление строки к списку с использованием .extend()
list1 = ['welcome', 'to']
list1.extend(['datagy'])  # Добавляет строку как единственный элемент списка
print(list1)

# Возвращает:
# ['welcome', 'to', 'datagy']
```

В следующих разделах вы узнаете о различии между методом `.extend()` в Python и другими популярными способами добавления элементов в список.

### Расширение списка в Python (Extend) по сравнению с Добавлением элемента (Append)

Метод [.append()](https://datagy.io/append-to-lists-python/) списка в Python также добавляет элемент в конец списка. Однако, он добавляет только один элемент за раз. В то время как метод `.extend()` не сработал, когда мы пытались добавить только один элемент, метод `.append()` будет работать неожиданно, если мы попытаемся добавить список элементов.

Давайте сравним эти два метода:

```python
# Сравнение методов .extend() и .append() списка
list1_append = [1, 2, 3]
list1_extend = [1, 2, 3]
list2 = [4, 5, 6]

list1_append.append(list2)  # Добавляет вложенный список как один элемент
list1_extend.extend(list2)  # Добавляет элементы списка в конец

print(f'{list1_append=}')  # Выводит результат использования метода .append()
print(f'{list1_extend=}')  # Выводит результат использования метода .extend()

# Возвращает:
# list1_append=[1, 2, 3, [4, 5, 6]]
# list1_extend=[1, 2, 3, 4, 5, 6]
```

Мы видим, что при попытке добавить несколько элементов в список с помощью `.append()`, все элементы добавляются как единый список.

Чтобы иметь возможность добавлять каждый элемент отдельно с использованием метода `.append()`, нам нужно будет использовать цикл for.

```python
# Добавление нескольких элементов с помощью .append()
list1_append = [1, 2, 3]
list2 = [4, 5, 6]

for item in list2:
    list1_append.append(item)  # Добавляет каждый элемент списка list2 в конец списка list1_append

print(list1_append)

# Возвращает: [1, 2, 3, 4, 5, 6]
```

### Расширение списка в Python с помощью метода extend в сравнении с оператором сложения (+)

Еще один распространенный способ добавления элементов в конец списка в Python - использование оператора `+`. Этот метод объединяет два списка. Поскольку операция происходит не на месте, она *создает* новый объект, который объединяет два списка.

Давайте посмотрим на пример того, как это работает:

```python
# Добавление элементов в список с помощью оператора +
list1 = [1, 2, 3]
list2 = [4, 5, 6]

list1 = list1 + list2  # Объединяет два списка, создавая новый список

# Возвращает: [1, 2, 3, 4, 5, 6]
```

Мы также можем сократить это, используя [оператор увеличенного присваивания](https://datagy.io/python-increment-decrement-operators/) следующим образом:

```python
# Использование оператора += для объединения списков
list1 = [1, 2, 3]
list2 = [4, 5, 6]

list1 += list2  # Добавляет элементы списка list2 к списку list1

# Возвращает: [1, 2, 3, 4, 5, 6]
```

В следующем разделе мы рассмотрим производительность этих различных методов.

### Сравнение производительности добавления элементов в список в Python

Мы можем измерять время выполнения различных методов, используя Jupyter Notebooks и команду `%%timeit`. В таблице ниже представлены различные методы и их время выполнения при попытке конкатенации списка из миллиона элементов:

| Метод       | Время работы производительности |
| ----------- | ------------------------------- |
| `.extend()` | 20.4 ms ± 502 µs per loop       |
| `.append()` | 52.5 ms ± 466 µs per loop       |
| `+`         | 1min 21s ± 4.19 s per loop      |

Мы можем видеть, что метод `.extend()` является явным лидером, в то время как использование метода `.append()` занимает почти первое место. Тем временем, использование метода `+` показывает худшие результаты среди всех для больших списков.

### Заключение

В этом учебном пособии вы научились использовать метод `.extend()` в Python для добавления нескольких элементов в список. Вы узнали, как работает этот метод и как его можно использовать для расширения списков с помощью других итерируемых объектов. Вы узнали о некоторых особенностях использования этого метода, например, при добавлении одиночных элементов в список.

Вы узнали, как метод `.extend()` сравнивается с другими способами добавления элементов в конец списка, включая метод `.append()` и использование оператора `+`. Наконец, мы изучили производительность различных методов, указывая на то, что при работе с большими списками метод `.extend()` является явным победителем.

### Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь со следующими статьями ниже:

* Списки Python: полный обзор
* Python: объединить списки – объединить списки (8 способов)
* Как добавлять к спискам в Python — 4 простых метода!
* Добавить к списку Python (добавить в начале)
