Comment supprimer un élément d'une liste en Python

Découvrez comment supprimer des éléments d'une liste Python. Maîtrisez la différence entre remove(), pop(), del et clear, avec une gestion sécurisée des erreurs d'index.

Essayez cette solution dans l'éditeur

Aperçu

La modification des collections en supprimant des éléments est une tâche fondamentale lors de la gestion des files d'attente, de l'analyse des configurations ou du filtrage des ensembles de données. Les listes Python étant modifiables, vous pouvez supprimer des éléments sur place. Python propose plusieurs méthodes pour supprimer des éléments, et le choix de la bonne dépend si vous souhaitez supprimer par valeur, par index ou effacer entièrement la liste.

Pour supprimer un élément par sa valeur, vous utilisez la méthode `.remove(value)`. Il recherche dans la liste et supprime la *première* occurrence de cette valeur. Si la valeur n'est pas trouvée, une `ValueError` est générée. Pour supprimer un élément à un index spécifique et récupérer sa valeur, vous utilisez la méthode `.pop(index)` (qui utilise par défaut le dernier élément si aucun index n'est fourni).

Si vous souhaitez supprimer un élément d'un index sans conserver sa valeur, vous pouvez utiliser l'instruction `del` (par exemple, `del my_list[index]`). Pour effacer tous les éléments d'une liste sur place, la méthode `.clear()` est le choix le plus efficace. Comprendre ces opérations évite les erreurs et les problèmes de fuite de mémoire.

Sortie de code et d'exécution

Ce script montre la suppression d'éléments de liste par valeur à l'aide de remove(), par index à l'aide de pop() et del, et la suppression du contenu de la liste.

remove_list_items.py
Essayez dans l'éditeur
fruits = ["apple", "banana", "cherry", "banana", "date"]

# 1. Remove by value (deletes the first match only)
fruits.remove("banana")
print("After remove('banana'):", fruits)

# Handling ValueError safely
try:
    fruits.remove("orange")
except ValueError:
    print("Value 'orange' not found in list.")

# 2. Remove by index and retrieve item using pop()
popped_item = fruits.pop(1) # Removes index 1 ("cherry")
print(f"Popped: {popped_item} | List after pop:", fruits)

# 3. Delete by index without retrieving using del
del fruits[0] # Removes "apple"
print("After del index 0:", fruits)

# 4. Clear entire list in-place
fruits.clear()
print("After clear():", fruits)
Sortie terminale
After remove('banana'): ['apple', 'cherry', 'banana', 'date']
Value 'orange' not found in list.
Popped: cherry | List after pop: ['apple', 'banana', 'date']
After del index 0: ['banana', 'date']
After clear(): []

Mise en œuvre étape par étape

  • Utilisez list.remove(value) pour rechercher et supprimer la première occurrence d'une valeur spécifique.
  • Appelez list.pop(index) pour supprimer et renvoyer l'élément à la position d'index spécifiée.
  • Utilisez l'instruction del list[index] pour supprimer un élément ou une tranche d'éléments directement par index.
  • Appelez list.clear() pour supprimer tous les éléments sur place, laissant une liste vide de taille 0.

Foire aux questions

Quelle est la différence entre pop() et del ?

pop() supprime l'élément et le renvoie, vous permettant de l'affecter à une variable. del est une instruction qui supprime l'élément de la mémoire sans le renvoyer.

Comment supprimer toutes les occurrences d’une valeur d’une liste ?

Utilisez une compréhension de liste ou une boucle while : list = [x for x in list if x != target_value]. L’appel de remove() à l’intérieur d’une boucle peut ignorer des éléments s’ils sont modifiés de manière incorrecte.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.