Modifier une liste

Bonne nouvelle ! Il est possible de modifier une liste ! 🎉

Cela signifie que les listes sont des objets mutables (inverse de immuable).

Voyons ensemble les différentes manières permettant de modifier une liste.

1. Modifier un élément

La première possibilité qui nous est offerte est celle de modifier la valeur d'un élément de la liste.

Supposons que l'on ait la liste [1, 3, 6, 9] et que l'on souhaite remplacer le 3 par un 4. Il suffit de connaître l'indice de la valeur 3 et d'indiquer à Python que l'on souhaite remplacer la valeur se trouvant à cet indice. En faisant ça, l'ancienne valeur (ici 3) sera perdue à tout jamais ! Si on souhaitait y avoir accès plus tard, on aurait pu la stocker dans une variable avant de procéder au remplacement.

MéthodeModification par l'indice

Soit l une liste de taille n (qui contient n éléménts).

L'instruction l[i] = x pour \(0 \le i < n\) remplace la valeur dans l à l'indice i par la valeur de x.

En cas d'indice négatif, le même principe que l'accès d'un élément à indice négatif est utilisé.

1
l = [1, 3, 6, 9]
2
print(l)  # [1, 3, 6, 9]
3
l[1] = 4
4
print(l)  # [1, 4, 6, 9]

RemarqueIndexError

En cas d'indice supérieur ou égal à n (ou inférieur à -n), l'erreur IndexError: list assignment index out of range nous rappelle que l'indice est en dehors des bornes de la liste.

2. Ajouter un élément

Autre nouveauté, on peut ajouter un élément dans notre liste ! Cela va donc influencer la taille de la liste. En effet, si on rajoute un élément dans une liste de taille n, sa nouvelle taille vaudra n+1.

MéthodeAjout d'un élément

Soit l une liste de taille n (qui contient n éléménts).

L'instruction l.append(x) ajoute à la fin de la liste l la valeur x, c'est-à-dire à l'indice n. Ainsi, l[n] vaut désormais x et la taille de l est alors n+1.

1
l = [1, 3, 6, 9]
2
print(l)  # [1, 3, 6, 9]
3
l.append(4)
4
print(l)  # [1, 3, 6, 9, 4]

3. Supprimer un élément

Encore une autre nouveauté ! Décidemment ça fait beaucoup là...

Il est possible de supprimer un élément d'une liste (oui bon on s'en doutait quand-même).

Et pour cela, il existe plusieurs méthode, dont une que l'on verra en cours : pop.

MéthodeSuppression par l'indice

Soit l une liste de taille n (qui contient n éléménts).

L'instruction l.pop(i) pour \(0 \le i < n\) supprime la valeur dans l à l'indice i. La nouvelle taille de l est donc n-1, et tous les éléments ayant un indice supérieur à i sont décalés (leur nouvel indice est diminué de 1).

En cas d'indice négatif, le même principe que l'accès d'un élément à indice négatif est utilisé.

1
l = [1, 3, 6, 9]
2
print(l)  # [1, 3, 6, 9]
3
l.pop(1)
4
print(l)  # [1, 6, 9]

RemarqueRetour de pop

La méthode pop() renvoie la valeur supprimée de la liste. Vous pouvez décider d'ignorer cette valeur ou bien de l'enregistrer dans une variable par exemple.

1
l = [1, 3, 6, 9]
2
x = l.pop(1)
3
print(l)  # [1, 6, 9]
4
print(x)  # 3

RemarqueUn pop vide

Dans le cas où aucun argument n'est donné dans la méthode pop(), la valeur par défaut est -1. Ainsi, pop() supprimera le dernier élément de la liste (c'est l'inverse de append()).