list.insert()
Метод insert() вставляет элемент в указанную позицию списка, сдвигая все последующие элементы на одну позицию вправо. Сложность операции линейная (O(n)) — для частых вставок в начало используйте collections.deque.
Сигнатура
list.insert(i, x)
Параметры
i— индекс позиции, в которую вставить элемент.insert(0, x)вставляет в начало,insert(len(lst), x)— в конец (эквивалентappend). Отрицательные индексы поддерживаются (отсчёт с конца).x— вставляемое значение (любого типа).
Возвращаемое значение
None. Список модифицируется на месте.
Примеры использования
Пример 1. Вставка в середину.
queue = ["Айдос", "Бахыт", "Дина"]
queue.insert(2, "Серик")
print(queue)
['Айдос', 'Бахыт', 'Серик', 'Дина']
Пример 2. Вставка в начало.
data = [20, 30, 40]
data.insert(0, 10)
print(data)
[10, 20, 30, 40]
Пример 3. Индекс больше длины — добавление в конец.
При выходе за границы исключение не возникает: значение просто помещается в конец или в начало:
items = [1, 2, 3]
items.insert(99, 4)
items.insert(-99, 0)
print(items)
[0, 1, 2, 3, 4]
Пример 4. Отрицательный индекс.
Отрицательный индекс -1 вставляет перед последним элементом, не вместо него:
row = ["A", "B", "D"]
row.insert(-1, "C")
print(row)
['A', 'B', 'C', 'D']
Пример 5. Поддержание отсортированного списка через bisect.
При работе с уже отсортированным списком эффективнее использовать bisect.insort:
import bisect
sorted_list = [10, 20, 40, 50]
bisect.insort(sorted_list, 30)
print(sorted_list)
[10, 20, 30, 40, 50]
См. также
list.append() — добавление в конец
list.extend() — добавление нескольких элементов
list.pop() — удаление по индексу
Примечание
Лицензия и источники
Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.