Python >> Tutoriel Python >  >> Python

Comment insérer à la première position d'une liste en Python

Formulation du problème :Comment insérer un élément en première position d'une liste en Python ?

Solution :

Utilisez le list.insert(0, x) élément pour insérer l'élément x à la première position 0 dans la liste. Tous les éléments j>0 sera déplacé d'une position d'index vers la droite.

>>> lst = [5, 1, 3, 8, 7, 9, 2]
>>> lst.insert(0, 42)
>>> lst
[42, 5, 1, 3, 8, 7, 9, 2]

Vous créez la liste [5, 1, 3, 8, 7, 9, 2] et stockez-le dans la variable lst .

Ensuite, insérez le nouvel élément 42 à la première position de la liste avec l'index 0.

💡 Remarque :Python utilise l'indexation de base zéro donc la première position a l'index 0.

La liste résultante comporte 8 éléments au lieu de seulement 7. Le nouvel élément 42 est en tête de liste. Tous les éléments restants sont décalés d'une position vers la droite.

Pour approfondir le très important list.insert() méthode, je vous recommande de regarder ma vidéo explicative complète ici :

Notez que certaines personnes recommandent d'insérer un élément en première position d'une liste comme ceci :

>>> lst = [1, 2, 3]
>>> lst = ['new'] + lst
>>> lst
['new', 1, 2, 3]

Bien que la sortie semble identique, cela ne résout pas réellement le problème car l'opérateur de concaténation de liste list_1 + list_2 crée une nouvelle liste avec les éléments de deux listes existantes.

Les listes d'origine restent inchangées.

Uniquement en l'affectant à la variable lst , vous l'écrasez. Cependant, si une autre variable pointe vers l'ancienne liste, cette option basée sur la concaténation des listes ne fonctionnera pas car l'ancienne liste reste inchangée.

>>> lst_1 = [1, 2, 3]
>>> lst_2 = lst_1
>>> lst_2 = ['new'] + lst_2

Dans cet exemple, vous créez deux listes lst_1 et lst_2 tous deux se référant au même objet de liste en mémoire.

Vous essayez d'insérer le nouvel élément au début de la liste en utilisant la méthode problématique. Et vous obtenez un conflit—les deux listes font référence à des objets différents en mémoire !

>>> lst_2
['new', 1, 2, 3]
>>> lst_1
[1, 2, 3]

Ainsi, le list.insert(0, 'new') est supérieure à la concaténation de liste pour insérer un élément à une position donnée dans la liste.

>>> lst_1 = [1, 2, 3]
>>> lst_2 = lst_1
>>> lst_2.insert(0, 'new')
>>> lst_1
['new', 1, 2, 3]
>>> lst_2
['new', 1, 2, 3]

Les deux variables font maintenant référence au même objet de liste modifié.