Python propose de nombreuses façons de supprimer des éléments des listes : les méthodes remove(), pop() ainsi que l'opérateur del. Chaque approche a ses nuances. Le choix correct dépend de la nécessité de supprimer un élément par valeur, par index, d'obtenir la valeur supprimée ou simplement de retirer un élément.
La confusion entre remove(), pop() et del entraîne souvent des erreurs : un choix incorrect de méthode peut provoquer une exception ou supprimer le mauvais élément. Il est également important de savoir ce qui se passe avec la valeur de retour et comment différents méthodes réagissent à l'absence d'élément dans la liste.
remove(x) supprime le premier élément rencontré avec la valeur x — lève une exception ValueError si celui-ci n'existe paspop([i]) supprime et retourne l'élément à l'index i (sans index — l'élément dernier). Si l'index est hors limites — lève IndexErrordel list[i] supprime l'élément à l'index sans retourner de valeur. Il est possible de supprimer des tranches (del list[i:j])Exemple de code :
lst = [10, 20, 30, 20] lst.remove(20) # [10, 30, 20] lst.pop(1) # Supprime 30, [10, 20] del lst[0] # [20]
Caractéristiques clés :
Que se passe-t-il si l'on appelle remove() pour une valeur qui n'est pas dans la liste ?
Une ValueError est levée :
lst = [1, 2] lst.remove(5) # ValueError: list.remove(x): x not in list
Comment retourner l'élément qui vient d'être supprimé de la liste ?
Seul pop retourne l'élément supprimé.
lst = [7, 8, 9] x = lst.pop() # x = 9
Peut-on utiliser del pour supprimer par valeur ?
Non, del fonctionne uniquement avec des index ou des tranches. Par valeur, cela ne peut se faire qu'avec remove.
** Cas négatif Un programmeur écrit une boucle via range(len(lst)) et supprime des éléments via del — l'indexation se dérègle, des éléments sont sautés. Avantages : Simple et "logique" pour un débutant Inconvénients : Facile de rencontrer un comportement inattendu — certains éléments ne sont pas supprimés, la liste ne fonctionne pas comme prévu. ** Cas positif Avant la suppression par valeur — il y a une vérification, pop est utilisé uniquement si l'index est garanti, la suppression par index se fait dans l'ordre inversé. Avantages : Le code est résistant aux erreurs, pas de saut d'éléments Inconvénients : Parfois, le code est un peu plus long, mais il est transparent et sûr