Как вставить несколько элементов в список?
В 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:]