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éthode : Modification 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é.
l = [1, 3, 6, 9]
print(l) # [1, 3, 6, 9]
l[1] = 4
print(l) # [1, 4, 6, 9]
Remarque : IndexError
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éthode : Ajout 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
.
l = [1, 3, 6, 9]
print(l) # [1, 3, 6, 9]
l.append(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éthode : Suppression 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é.
l = [1, 3, 6, 9]
print(l) # [1, 3, 6, 9]
l.pop(1)
print(l) # [1, 6, 9]
Remarque : Retour 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.
l = [1, 3, 6, 9]
x = l.pop(1)
print(l) # [1, 6, 9]
print(x) # 3
Remarque : Un 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()
).