Сообщить об ошибке.

Метод list.insert() в Python, вставить элемент по индексу.

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

Синтаксис:

sequence.insert(i, x)

Параметры:

  • sequence - изменяемая последовательность, list или bytearray,
  • i - целое число,
  • x - произвольный объект, удовлетворяющий любым ограничениям типа и значения, наложенным sequence.

Результат:

  • увеличение последовательности sequence

Описание:

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

Метод sequence.insert(i, x) вставляет объект x в последовательность sequence по индексу i. Если значение индекса i находится за пределами длины последовательности, то объект x вставляется в конец последовательности.

Операция вставки объекта в последовательность по индексу эквивалентна выполнению sequence[i:i] = [x].

Эта операция поддерживаются изменяемыми типами последовательностей.

Примечание. Если необходимо осуществлять частые вставки в начало изменяемой последовательности, такие как списки или массивы байтов, то для лучшей производительности кода используйте двустороннюю очередь collections.deque(). Этот тип данных предоставляет модуль collections. Тип collections.deque() специально оптимизирован для таких действий.

Примеры добавления в список элемента по индексу.

Вставить элемент в начало списка.

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

Для оптимизации таких действий, применяйте двустороннюю очередь collections.deque(). Тем более данный тип позволяет расширять начало списка другим списком.

# использование lst.insert()
>>> x = [12, 15, 18]
>>> x.insert(0, 3)
>>> x
# [3, 12, 15, 18]

# использование двусторонней очереди
>>> import collections
>>> dq = collections.deque(x)
>>> dq.appendleft(2)
>>> x = list(dq)
>>> x
# [2, 3, 12, 15, 18]

# расширение начала списка другим списком
>>> ext_lst = [0, 1, 2]
>>> dq.extendleft(ext_lst[::-1])
>>> list(dq)
# [0, 1, 2, 2, 3, 12, 15, 18]

Вставить элемент в середину списка.

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

>>> x = [1, 2, 3, 12, 15, 18]
>>> n = len(x)
>>> i = n//2
>>> x.insert(i, 50)
>>> x
# [1, 2, 3, 50, 12, 15, 18]

Общие примеры добавления элемента в список по индексу.

>>> x = [2, 0, 3, 12, 15, 18]

# вставка кортежа в список по индексу
>>> x.insert(5, ('one', 'two'))
>>> x
# [2, 0, 3, 12, 15, ('one', 'two'), 18]

# если индекс за пределами длины последовательности
>>> x.insert(100, 100)
>>> x
# [2, 0, 3, 12, 15, ('one', 'two'), 18, 100]

# вставка элемента в список по отрицательному индексу
>>> x.insert(-3, 'foo')
>>> x
# [2, 0, 3, 12, 15, 'foo', ('one', 'two'), 18, 100]

# Эквивалент 
>>> x[5:5] = [25]
>>> x
# [2, 0, 3, 12, 15, 25, 'foo', ('one', 'two'), 18, 100]