Python inclut par défaut toute une série de méthodes qui sim­pli­fient et ac­cé­lè­rent l’exécution des pro­grammes. 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 in­di­vi­duels à la fin, les méthodes Python extend et Python append sont pré­fé­rables.

Syntaxe, pa­ra­mètres et fonc­tion­ne­ment de insert() sous Python

La méthode Python insert se construit avec deux pa­ra­mètres : l’élément à insérer et l’index (l’em­pla­ce­ment) où cet élément doit être inséré. Comme les listes Python sont hé­té­ro­gè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 ca­rac­tè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 pa­ra­mètres peuvent être insérés di­rec­te­ment 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’in­gré­dients de pâ­tis­se­rie par des in­gré­dients sup­plé­men­taires, insérés res­pec­ti­ve­ment aux index 0 et 2. Il est important de noter que l’in­dexa­tion en Python commence à 0, comme dans la plupart des autres langages de pro­gram­ma­tion. 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 suc­ces­seurs 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 sim­ple­ment inséré en fin de liste. Dans ce cas, insert() se comporte exac­te­ment comme la méthode Python append(). Cependant, si on associe à un élément un index négatif, il sera in­ter­prété comme distance depuis la fin de la liste. Par exemple, -1 cor­res­pon­drait à l’avant-dernier élément, -2 à l’an­té­pé­nul­tième, etc. Voici un exemple qui illustre ces deux pro­prié­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 ap­pli­ca­tion Web ra­pi­de­ment, fa­ci­le­ment et sans problème ? Alors utilisez Git avec Deploy Now par IONOS, une pla­te­forme pensée pour vous !

Al­ter­na­tives à Python insert()

Selon la fonction dont vous avez besoin, il existe plusieurs opé­ra­teurs Python uti­li­sables 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 sou­hai­tiez pas supprimer d’élément de votre liste, voire que vous sou­hai­tiez 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. Con­trai­re­ment à 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)
# Sortie : [‘sucre’, ‘farine’, ‘bicarbonate’, ‘plus de sucre’, ‘encore plus de sucre’, ‘sel’, ‘beurre’, ‘levure’]
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 con­ca­té­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. Fi­na­le­ment, nous avons écrasé ingredients avec la liste résultant de cette double con­ca­té­na­tion.

Il est important de noter que cette solution nécessite de nom­breuses é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 nom­breuses entrées.

Aller au menu principal