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

В JavaScript я могу использовать splice для вставки массива из нескольких элементов в массив: myArray.splice(insertIndex, removeNElements, ...insertThese)

Но я не могу найти способ сделать что-то подобное в Python без конкатентных списков. Есть ли такой способ?

Например myList = [1, 2, 3] и я хочу вставить otherList = [4, 5, 6], вызвав myList.someMethod(1, otherList), чтобы получить [1, 4, 5, 6, 2, 3]

Ответ 1

Чтобы расширить список, просто используйте list.extend. Чтобы вставить элементы из любого итерабельного в индекс, вы можете использовать назначение срезов...

>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[5:5] = range(3)
>>> a
[0, 1, 2, 3, 4, 0, 1, 2, 5, 6, 7, 8, 9]

Ответ 2

В списках Python нет такого метода. Вот вспомогательная функция, которая принимает два списка и помещает второй список в первый список в указанной позиции:

def insert_position(position, list1, list2):
    return list1[:position] + list2 + list1[position:]