Tuto Python : Les listes : la méthode REMOVE()
Table des matières
- Syntaxe de Python Remove ()
- Remove() - Supprimer un élément par sa valeur
- Suppression d'un élément qui n'existe pas
- Différence entre Remove(), Pop() et Del
4.1- Pop() - Supprimer un élément par index
4.2 Clear() - Supprimer tous les éléments
4.3 Del - Supprimer des éléments par index ou par tranche
- Compréhension de la liste - Suppression conditionnelle d'éléments
- Remove() Tous
- Suppression des doublons
- Remove() If existe
- Exercice
Introduction :
Dans ce chapitre on va apprendre l’utilisation de la méthode remove(), c’est une méthode intégrer dans python.
Premièrement on va avoir la syntaxe de la méthode, ensuite comment supprimer un élément par sa valeur.
Deuxièmement, on va distinguer entre les méthodes : pop(), remove(), clear() et del, et voir des exemple de chaque méthodes cités auparavant.
Finalement, des exercices pour bien comprendre et de solution.
1. Syntaxe de Python Remove () :
La méthode list.remove(élément) supprime la première occurrence de l'élément d'une liste existante. Cependant, elle ne supprime pas toutes les occurrences de l'élément dans la liste !
Sa syntaxe est la suivante :
List.remove(element)
Paramètre:
Élément : Objet que vous souhaitez retirer de la liste. Seule la première occurrence de l'élément est supprimée.
Valeur de retour :
La méthode list.remove(élément) ne renvoie rien comme valeur de retour, Elle fonctionne sur une liste existante et, par conséquent, ne renvoie pas de nouvelle liste avec l'élément supprimé.
Exemple :
Syntaxe :
lst = [1, 2, 99, 4, 99]
lst.remove(99)
lst
Résultat d’exécution :
vous avez créé une liste lst. Vous supprimez ensuite l'élément entier 99 de la liste, mais seulement sa première occurrence. Le résultat est la liste avec seulement quatre éléments [1, 2, 4, 99].
2. Remove() - Supprimer un élément par sa valeur
Pour supprimer un élément de la liste, utilisez la méthode list.remove(élément) que vous avez déjà vue précédemment :
Exemple :
Syntaxe :
lst = ["amine", 3, "amine", "mina", 42]
lst.remove("mina")
lst
Résultat d’exécution :
La méthode va de gauche à droite et supprime la première occurrence de l'élément qui est égal à celui qui doit être supprimé.
3. Suppression d'un élément qui n'existe pas:
Si vous essayez de supprimer l'élément x de la liste mais que x n'existe pas dans la liste, Python lance une erreur Value :
Exemple :
Syntaxe :
lst = ["amine", 3, "amine", 42]
lst.remove("mina")
lst
Résultat d’exécution :
4. Différence entre Remove(), Pop() et Del :
Remove() supprime l'élément ou l'objet correspondant, tandis que Del et Pop suppriment l'élément à un index spécifique.
Del et Pop s'occupe de l'index. La seule différence entre les deux est que Pop renvoie la valeur supprimée de la liste et que Del ne renvoie rien.
Pop est la seule façon de renvoyer l'objet.
Remove() est le seul qui recherche l'objet (et non l'index).
Quelle est la meilleure façon de supprimer l'élément dans List ?
Si vous souhaitez supprimer un objet spécifique de la liste, utilisez la méthode Remove().
Si vous voulez supprimer l'objet à un endroit précis (index) de la liste, vous pouvez utiliser soit Del, soit pop.
Utilisez le pop, si vous voulez supprimer et récupérer l'objet à l'endroit spécifique.
DEL | REMOVE() | POP() |
C’est un mot clé. | C'est une méthode. | C’est une méthode. |
Pour supprimer une valeur, il utilise l'index. | Pour supprimer une valeur, cette méthode utilise la valeur comme paramètre. | Pour supprimer une valeur, cette méthode utilise également l'index comme paramètre. |
Le mot-clé DEL ne renvoie aucune valeur. | La méthode Remove() ne renvoie aucune valeur. | renvoie une valeur supprimée. |
peut supprimer la valeur unique d'une liste ou supprimer toute la liste à la fois. | Il ne supprime qu'une seule valeur de la liste à la fois. | Il ne supprime qu'une seule valeur de la liste à la fois. |
Il lance une erreur d'index dans le cas où l'index n'existe pas dans la liste. | Il lance une erreur de valeur si la valeur n'existe pas dans la liste. | Il lance une erreur d'index si un index n'existe pas dans la liste. |
4.1- Pop() - Supprimer un élément par index
Par défaut, la méthode Pop() supprime le dernier élément de la liste et renvoie l'élément.
Syntaxe :
lst = ['Alice', 'Bob', 'Ann']
lst.pop()
Résultats de l’exécution :
Syntaxe :
lst
Résultats de l’exécution :
Mais vous pouvez également définir l'argument optionnel de l'index. Dans ce cas, vous supprimerez l'élément à l'index donné - un secret de Python peu connu !
Syntaxe :
lst = ['Alice', 'Bob', 'Ann']
lst.pop(1)
Résultats de l’exécution :
Syntaxe :
lst
Résultats de l’exécution :
4.2 Clear() - Supprimer tous les éléments :
La méthode clear() supprime simplement tous les éléments d'un objet de liste donné.
Syntaxe :
lst=[ 'amine', 'Ayman', 'mina']
lst.clear()
lst
Résultats de l’exécution :
4.3 Del - Supprimer des éléments par index ou par tranche :
Cette astuce est également relativement peu connue des débutants en python :
Utilisez del lst [index] pour supprimer l'élément à l'index.
Utilisez del lst [start:stop] pour supprimer tous les éléments de la tranche.
Syntaxe :
lst = list(range(10))
lst
Résultats de l’exécution :
Syntaxe :
del lst[5]
lst
Résultats de l’exécution :
5. Compréhension de la liste - Suppression conditionnelle d'éléments:
D'accord, c'est une sorte de tricherie car cette méthode ne supprime pas vraiment les éléments d'un objet de liste. Elle crée simplement une nouvelle liste avec certains éléments qui répondent à votre condition.
La compréhension des listes est une façon compacte de créer des listes. La formule simple est [expression + contexte].
Expression : Que faire de chaque élément de la liste ?
Contexte : Quels éléments de liste sélectionné ? Il s'agit d'un nombre arbitraire d'énoncés for et if.
L'exemple [x pour x dans l'intervalle(3)] crée la liste [0, 1, 2].
Vous pouvez également définir une condition telle que toutes les valeurs impaires x%2==1 dans la partie contexte en utilisant une condition if. Cela nous conduit à un moyen de supprimer tous les éléments qui ne remplissent pas une certaine condition dans une liste donnée.
Syntaxe :
liste = list(range(10))
liste_new = [x for x in liste if x%2]
liste_new
Résultats de l’exécution :
Alors que vous itérez sur toute la liste liste, la condition « x%2 » exige que les éléments soient impairs.
6. Remove() Tous :
La méthode list.remove(x) ne supprime de la liste que la première occurrence de l'élément x.
Mais que faire si vous souhaitez supprimer toutes les occurrences de l'élément x d'une liste donnée ?
La réponse est d'utiliser une simple boucle :
Syntaxe :
lst = ['Ann', 'Ann', 'Ann', 'Alice', 'Ann', 'Bob']
x = 'Ann'
while x in lst:
lst.remove(x)
print(lst)
Résultats de l’exécution :
Il suffit d'appeler la méthode remove() encore et encore jusqu'à ce que l'élément x ne soit plus dans la liste.
7. Suppression des doublons:
Comment supprimer tous les doublons d'une valeur donnée dans la liste ?
L'approche naïve consiste à passer en revue chaque élément et à vérifier si cet élément existe déjà dans la liste. Si c'est le cas, il faut le supprimer. Cependant, cela prend quelques lignes de code.
Une manière plus courte et plus concise est de créer un dictionnaire à partir des éléments de la liste. Chaque élément de la liste devient une nouvelle clé pour le dictionnaire. Tous les éléments qui apparaissent plusieurs fois seront affectés à la même clé. Le dictionnaire ne contient que des clés uniques - il ne peut y avoir plusieurs clés égales.
Comme valeurs du dictionnaire, vous prenez simplement des valeurs fictives (par défaut).
Ensuite, il suffit de reconvertir le dictionnaire en une liste en éliminant les valeurs factices. Comme les clés du dictionnaire restent dans le même ordre, vous ne perdez pas les informations sur l'ordre des éléments de la liste originale.
Syntaxe :
lst = [1, 1, 1, 3, 2, 5, 5, 2]
dictionaire = dict.fromkeys(lst)
dictionaire
Résultats de l’exécution :
Syntaxe :
sans_doublon = list(dictionaire)
sans_doublon
Résultats de l’exécution :
8. Remove() If existe:
Comment retirer un élément d'une liste - mais seulement s'il existe ?
Le problème est que si vous essayez de retirer de la liste un élément qui n'existe pas, Python lance une erreur de valeur. Vous pouvez éviter cela en vérifiant d'abord l'appartenance de l'élément à supprimer :
Syntaxe :
lst = ['amine', 'ayman', 'mina']
lst.remove('sami') if 'sami' in lst else None
lst
Résultats de l’exécution :
Il utilise la fonction Python one-liner de l'assignation conditionnelle (également appelée opérateur ternaire).
9. Exercice :
9.1 Exercice 1 :
Dans la liste suivante supprimer le premier élément 20 :
Liste=[10, 20,10, 30, 10,40 ,60]
Afficher les résultats
9.2 Exercice 2 :
Créer une liste dans lequel les composants sont :
["rouge", "vert", "bleu", "orange", "gris"]
Supprimer l’élément « noir », qu’affichent les résultats ?
Qu’elle est la solution ?
9.3 Exercice 3 :
Dans la liste suivante :
Liste=["jour", "nuit", "matin"]
Utilise la méthode clear() effacer le contenu de cette liste.
9.4 Exercice 4 :
Considérons la liste suivante :
liste=[ "lundi", "lundi", "lundi", "mardi", "mercredi","lundi"]
Crée la liste ensuite effacer tous les éléments « lundi » dans la liste et après afficher la liste.
10. Solution :
10.1 Exercice 1 :
Syntaxe :
Liste=[10, 20,10, 30, 10,40 ,60]
Liste.remove(20)
Liste
Résultats de l’affichage :
10.2 Exercice 2 :
Syntaxe :
liste= ["rouge", "vert", "bleu", "orange", "gris"]
liste.remove(noire)
Résultats de l’affichage :
« Noire » n’existe pas dans cette liste alors, le résultat affiche une erreur : la valeur « noire » n’existe pas dans la liste
La solution est de créer une boucle de vérification comme suite :
Syntaxe :
liste= ["rouge", "vert", "bleu", "orange", "gris"]
liste.remove('noire') if 'noire' in liste else None
Liste
Résultats de l’affichage :
10.3 Exercice 3 :
Syntaxe :
liste= ["jour", "nuit", "matin"]
liste.clear()
liste
Résultats de l’affichage :
10.4 Exercice 4 :
Syntaxe :
liste= ["lundi","lundi", "lundi", "mardi", "mercredi","lundi"]
x = 'lundi'
while x in liste:
liste.remove(x)
print(liste)
Résultats de l’exécution :
Conclusion
Remove() est une fonction intègre dans python, elle supprime un élément designer, elle ne renvoie pas de résultats, elle peut supprimer plusieurs éléments à la fois à l’aide d’une boucle, j’espère que vous avez bien appris comment utiliser cette fonction.
Article publié le 28 Janvier 2021 par Mouhtat Bilal