Python insert() : insérer des éléments dans une liste

Python inclut par défaut toute une série de méthodes qui simplifient et accélèrent l’exécution des programmes. Parmi celles-ci, on peut noter la méthode Python insert() qui permet d’insérer un seul élément dans une Python List existante. Si vous souhaitez ajouter à cette liste plusieurs éléments à la fois, ou seulement ajouter des éléments individuels à la fin, les méthodes Python extend et Python append sont préférables.

Syntaxe, paramètres et fonctionnement de insert() sous Python

La méthode Python insert se construit avec deux paramètres : l’élément à insérer et l’index (l’emplacement) où cet élément doit être inséré. Comme les listes Python sont hétérogènes, cet élément peut être une donnée de n’importe quel type (par ex. une liste, un entier, etc.). En revanche, l’index doit être indiqué sous forme d’entier. La ligne de code suivants illustre la syntaxe insert dans Python :

ingredients.insert(1, "sucre")
Python

Dans cet exemple, la chaîne de caractères (ou « string » en anglais) "sucre" est insérée à la position 1 dans la liste ingredients. L’index où l’élément est inséré constitue le premier argument, l’élément lui-même le second. Comme d’habitude, les deux paramètres peuvent être insérés directement ou définis comme des variables avant l’appel de la méthode. Voyons comment dans l’exemple suivant :

ingredients = ["farine", "œufs", "beurre"]
ingredients.insert(0, "sucre")
print(ingredients) # Sortie : [‘sucre’, ‘farine’, ‘œufs’, ‘beurre’]
Python

Dans cet exemple, on complète une liste d’ingrédients de pâtisserie par des ingrédients supplémentaires, insérés respectivement aux index 0 et 2. Il est important de noter que l’indexation en Python commence à 0, comme dans la plupart des autres langages de programmation. Cela signifie que le premier élément reçoit l’index 0, le deuxième élément l’index 1 et ainsi de suite. Lorsqu’un élément est inséré dans une liste Python avec insert(), le programme va bien sûr lui faire de la place. Pour cela, l’élément déjà présent à l’index et tous ses successeurs sont déplacés d’une position vers la droite.

Si l’index spécifié est situé en dehors de la plage valide dans la liste (plus grand que le nombre d’éléments de la liste, par exemple), l’élément sera simplement inséré en fin de liste. Dans ce cas, insert() se comporte exactement comme la méthode Python append(). Cependant, si on associe à un élément un index négatif, il sera interprété comme distance depuis la fin de la liste. Par exemple, -1 correspondrait à l’avant-dernier élément, -2 à l’antépénultième, etc. Voici un exemple qui illustre ces deux propriétés :

ingredients.insert(10, "levure")
print(ingredients) # Sortie : [‘sucre’, ‘farine’, ‘œufs’, ‘beurre’, ‘levure’]
ingredients.insert(-2, "sel")
print(ingredients) # Sortie : [‘sucre’, ‘farine’, ‘œufs’, ‘sel, ‘beurre’, ‘levure’]
Python
Conseil

Vous cherchez à mettre en ligne votre site Internet ou votre application Web rapidement, facilement et sans problème ? Alors utilisez Git avec Deploy Now par IONOS, une plateforme pensée pour vous !

Alternatives à Python insert()

Selon la fonction dont vous avez besoin, il existe plusieurs opérateurs Python utilisables comme des variantes de la méthode insert(). En voici deux.

Opérateur Index

L’opérateur d’index permet de lire ou remplacer un élément à un index donné dans une liste. Il est donc possible de remplacer un élément d’une liste par un autre avec cet opérateur index. Voici la syntaxe de cette méthode dans l’exemple suivant :

print(ingredients) # Sortie : [‘sucre’, ‘farine’, ‘œufs’, ‘sel, ‘beurre’, ‘levure’]
ingredients[2] = "bicarbonate"
print(ingredients) # Sortie : [‘sucre’, ‘farine’, ‘bicarbonate’, ‘sel, ‘beurre’, ‘levure’]
Python

Opérateur Slice

Il se peut aussi que vous ne souhaitiez pas supprimer d’élément de votre liste, voire que vous souhaitiez insérer plusieurs éléments en même temps au milieu de votre liste. Dans ce cas, le mieux est de passer par l’opérateur Slice. Contrairement à l’opérateur Index, l’opérateur Slice ne renvoie pas un seul élément d’une liste, mais une sous-séquence de la liste. Ainsi, on pourrait faire sortir de notre liste ingredients les éléments des indices 3 à 5 et obtenir ainsi la sous-séquence [‘sel’, ‘beurre’, ‘levure chimique’]. L’exemple suivant illustre comment insérer autant d’éléments que vous le souhaitez au milieu de votre liste avec l’opérateur Slice :

inserer = ["plus de sucre", "encore plus de sucre"]
ingredients = ingredients[:3] + inserer + ingredients[3:]
print(ingredients)
Python

Dans ce cas, la liste inserer a été ajoutée au milieu de la liste ingredients. Pour cela, nous avons d’abord pris tous les éléments de ingredients jusqu’à l’index 3 avec l’opérateur Slice et nous les avons concaténés avec inserer. Ensuite, nous avons pris tous les éléments de ingredients à partir de l’index 3 et avons concaténé notre liste avec celle-ci. Finalement, nous avons écrasé ingredients avec la liste résultant de cette double concaténation.

Il est important de noter que cette solution nécessite de nombreuses écritures. En effet, avec elle toute la liste est écrasée. Tenez-en compte dans le cas où votre programme doit être très efficace et si vous manipulez des listes avec de nombreuses entrées.