Principe et syntaxe
La méthode remove(x) supprime la première case contenant x dans le tableau. Attention, elle ne renvoie rien.
La syntaxe est la suivante :
nom_du_tableau.remove(valeur_a_supprimer)
Suppression d'un élément quelconque : coût LINEAIRE, c'est donc une opération à utiliser avec précaution car elle peut dégrader les performances du programme si le tableau possède beaucoup de cases.
Exemple
>>> tab = [10, 20, 30, 10, 40]
>>> tab.remove(20) # supprimer la case qui référence 20
>>> tab
[10, 30, 10, 40]
>>> tab.remove(10) # supprimer la 1er case qui référence 10
>>> tab
[30, 10, 40]
>>> tab.remove(10) # supprimer la case qui référence 10
>>> tab
[30, 40]
>>> tab.remove(10) # supprimer une case qui référence 10 ?
ValueError: list.remove(x): x not in list
Gérer le cas problématique
Attention, tenter de supprimer une valeur qui n'existe pas lève une exception.
Si vous n'êtes pas certain qu'un élément que vous voulez supprimer est présent, il faut donc tester avant d'agir :
>>> tab = [10, 20, 30, 10, 40]
>>> tab.remove(20) # supprimer la case qui référence 20
>>> tab
[10, 30, 10, 40]
>>> if 50 in tab: tab.remove(50)
Il n'y aura pas d'activation de la méthode puisque 50 n'est pas dans le tableau. Et donc pas d'erreur.
Modifie en place, aucune réponse renvoyée
La méthode ne renvoie aucune réponse : elle modifie en place le tableau sur lequel elle doit agir.
Une erreur très courante, qu'il ne faut donc jamais faire : réaliser une affectation de ce type :
>>> tab = [10, 20, 30]
>>> tab = tab.remove(20)
>>> tab
Ici, on place dans tab le résultat renvoyé par remove(), à savoir... rien. On a donc involontairement vidé tab de tout contenu. Notez que cela ne provoque pas d'erreur, c'est une erreur de sémantique.