web-dev-qa-db-fra.com

Comment insérer plusieurs éléments dans une liste?

En JavaScript, je peux utiliser splice pour insérer un tableau de plusieurs éléments dans un tableau: myArray.splice(insertIndex, removeNElements, ...insertThese)

Mais je n'arrive pas à trouver un moyen de faire quelque chose de similaire dans Python sans ayant des listes de concaténation. Existe-t-il un tel moyen?

Par exemple myList = [1, 2, 3] Et je veux insérer otherList = [4, 5, 6] En appelant myList.someMethod(1, otherList) pour obtenir [1, 4, 5, 6, 2, 3]

14
AlanH

Pour étendre une liste, vous utilisez simplement list.extend. Pour insérer des éléments de tout itérable à un index, vous pouvez utiliser l'attribution de tranche ...

>>> 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]
30
mgilson

Les listes Python n'ont pas une telle méthode. Voici une fonction d'assistance qui prend deux listes et place la deuxième liste dans la première liste à la position spécifiée:

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