> 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/dobavit-v-nachalo-spiska-v-python-vstavit-v-nachalo.md).

# Добавить в начало списка в Python (Вставить в начало)

В этом руководстве **вы узнаете, как использовать Python для добавления элементов в начало списка**. Хотя в Python есть метод для добавления значений в конец списка, метод добавления в начало отсутствует. В конце этого руководства вы научитесь использовать метод `.insert()` и объединять два списка для добавления элементов в начало.

Вы также узнаете, как использовать объект `deque` для вставки значений в начало списка. Во многих случаях это предпочтительный метод, так как он значительно более эффективен по памяти по сравнению с другими методами.

Содержание

* [Проблема с добавлением списка Python](#problema-s-dobavleniem-spiska-python)
* [Использование вставки для добавления к списку Python](#ispolzovanie-vstavki-dlya-dobavleniya-k-spisku-python)
* [Использование оператора + для добавления к списку Python](#ispolzovanie-operatora--dlya-dobavleniya-k-spisku-python)
* [Использование среза списка для добавления к списку Python](#ispolzovanie-sreza-spiska-dlya-dobavleniya-k-spisku-python)
* [Использование Deque для добавления к списку Python](#ispolzovanie-deque-dlya-dobavleniya-k-spisku-python)
* [Заключение](#zaklyuchenie)
* [Дополнительные ресурсы](#dopolnitelnye-resursy)

### Проблема с добавлением списка Python

[Списки Python](/neural/python/python-lists.md) являются изменяемым типом контейнеров, что означает, что их можно изменять. Из-за этого может возникнуть соблазн добавить элемент в список. Однако, в зависимости от размера вашего списка, этот процесс может быть чрезвычайно ресурсоемким.

Причина в том, что в начале списка нет "места". Когда вы добавляете элемент в начало списка, Python должен передвинуть все остальные элементы вперед. Позже в этом уроке вы узнаете о структуре данных `deque`, которая представляет собой двухстороннюю очередь. В этих объектах `deque` элементы могут свободно вставляться в начало или конец.

### Использование вставки для добавления к списку Python

Интуитивно понятный способ добавить элемент в начало списка Python - использовать метод insert. Метод `.insert()` принимает два параметра:

1. Индекс позиции для вставки элемента
2. Добавить элемент.

Давайте рассмотрим пример:

```python
# Использование .insert() для добавления элемента в начало списка в Python
words = ['welcome', 'to', 'bemind.gitbook.io']
words.insert(0, 'hello')

print(words)

# Вывод: ['hello', 'welcome', 'to', 'bemind.gitbook.io']
```

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

### Использование оператора + для добавления к списку Python

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

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

```python
# Использование оператора + для добавления элемента в начало списка
words = ['welcome', 'to', 'bemind.gitbook.io']
prefix = ['hello']

words = prefix + words
print(words)

# Вывод: ['hello', 'welcome', 'to', 'bemind.gitbook.io']
```

Аналогичным образом, мы можем использовать оператор присваивания с увеличением для добавления элемента в начало списка. Разница здесь в том, что нам нужно переназначить к префиксу, а не наоборот. Это демонстрируется ниже:

```python
# Использование оператора присваивания с добавлением (+=) для добавления элемента в начало списка
words = ['welcome', 'to', 'bemind.gitbook.io']
prefix = ['hello']

prefix += words
print(prefix)

# Вывод: ['hello', 'welcome', 'to', 'bemind.gitbook.io']
```

В следующем разделе вы узнаете, как использовать срезы списков для добавления к началу списка в Python.

### Использование среза списка для добавления к списку Python

Этот метод может показаться немного неловким, но он также может быть полезным способом добавить элемент в начало списка. Мы присваиваем список с одним значением срезу `[:0]` другого списка. Это заставляет элемент добавляться перед 0 элементом.

Давайте рассмотрим пример:

```python
# Использование среза списка для добавления элемента в начало списка в Python
words = ['welcome', 'to', 'bemind.gitbook.io']
words[:0] = ['hello']

print(words)

# Вывод: ['hello', 'welcome', 'to', 'bemind.gitbook.io']
```

В заключительном разделе вы узнаете самый эффективный способ добавления элементов в начало списка Python с точки зрения памяти.

### Использование Deque для добавления к списку Python

Часть невероятно универсальной библиотеки `collections` – это класс `deque`. Этот класс представляет собой двухстороннюю очередь, аналогичную стекам или очередям в других языках программирования. Преимущество заключается в том, что он позволяет добавлять элементы слева, не вызывая смещение всех значений в памяти.

Взглянем на пример:

```python
# Использование deque для добавления элемента в начало списка в Python
from collections import deque
words = deque(['welcome', 'to', 'bemind.gitbook.io'])
words.appendleft('hello')

print(words)

# Вывод: ['hello', 'welcome', 'to', 'bemind.gitbook.io']
```

Преимущество этого подхода заметно при работе с большими списками. С меньшими списками вы можете не заметить выгоды, но важно помнить о производительности.

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

В этом уроке вы узнали, как добавлять элементы в начало списка Python. Сначала вы узнали, почему добавление в начало списка может быть проблематичным. Затем вы узнали, как использовать три разных метода списка, включая `.insert()`, оператор `+` и индексирование списка для добавления в начало списка. Наконец, вы узнали, как использовать объект `deque` из коллекций для добавления в начало списка наиболее эффективно с точки зрения использования памяти.

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

Чтобы узнать больше по смежным темам, ознакомьтесь с ниже приведенными учебниками:

* Как добавлять к спискам в Python — 4 простых метода!
* Python Defaultdict: обзор и примеры
* Как использовать именованные кортежи Python
* [Официальная документация: Коллекции deque](https://docs.python.org/3/library/collections.html#collections.deque)
