Quelle est la différence entre del, remove et pop sur les listes Python

Aliaksei Yursha 25 juin 2020
  1. Suppression de liste Python par valeur
  2. Suppression de la liste Python par index
  3. Suppression de listes Python par del
Quelle est la différence entre del, remove et pop sur les listes Python

Comme souvent, Python offre plusieurs moyens pour réaliser la même chose.

Si vous avez besoin de supprimer un élément d’une liste, vous pouvez utiliser n’importe quel
Les fonctions list.remove() ou list.pop() ou l’instruction del intégrée.

Dans les exemples ci-dessous, nous allons couvrir chacune de ces approches et discuter de leurs différences et de leurs compromis.

Suppression de liste Python par valeur

list.remove() supprime le premier élément de la liste, dont la valeur est égale à l’argument passé.
En utilisant cette méthode, vous ne savez pas ou ne vous souciez pas de l’index de l’élément à enlever.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.remove('Cindy')
>>> names
['Bob', 'Noah']

Faites attention quand vous utilisez cette méthode.
Si un élément que vous essayez de supprimer n’existe pas dans la liste,
le runtime Python lancera une ValueError.

>>> names = ['Bob', 'Noah']
>>> names.remove('Cindy')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

Pour contourner ce problème, vous devrez vérifier si un élément
existe dans la liste avant d’essayer de le list.remove().

>>> names = ['Bob', 'Noah']
>>> if 'Cindy' in names:
...   names.remove('Cindy')
...
>>>

Suppression de la liste Python par index

Si vous connaissez l’index d’un élément que vous voulez supprimer, vous pouvez utiliser la méthode list.pop().

>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop(1)
'Cindy'
>>> names
['Bob', 'Noah']

La méthode list.pop() supprime un élément à l’index spécifié et le retourne.

Si vous ne donnez aucun index à list.pop(), elle supprimera le dernier élément de la liste.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop()
'Noah'
>>> names
['Bob', 'Cindy']

Suppression de listes Python par del

Une autre option pour supprimer un élément d’une liste par index est d’utiliser l’instruction intégrée del.
Contrairement à list.pop(), l’instruction del ne retourne pas de valeur supprimée.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[1]
>>> names
['Bob', 'Noah']

L’instruction del est aussi plus flexible que list.pop().
Vous pouvez l’utiliser pour supprimer des plages de valeurs de la liste.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[0:2]
>>> names
['Noah']

Vous pouvez aussi l’utiliser pour effacer la liste entière.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[:]
>>> names
[]

Comme vous pouvez le voir dans ce qui précède, chaque approche a des cas d’utilisation légèrement différents.
Néanmoins, si tout ce dont vous avez besoin est de supprimer un seul élément de la liste sans vous souvenir de sa valeur, alors l’une ou l’autre des méthodes fonctionnera.

Utilisez celle qui se lit le mieux dans le contexte plus large de votre code.

Article connexe - Python List