Supprimer toutes les occurrences d'un élément d'une liste en Python
-
Utilisez la fonction
filter()
pour supprimer toutes les instances d’un élément d’une liste en Python - Utilisez la compréhension de liste pour supprimer toutes les instances d’un élément d’une liste en Python
-
Utilisez la fonction
remove()
pour supprimer toutes les instances d’un élément d’une liste en Python
Une liste en Python permet de multiples occurrences d’un même élément. Même si la valeur d’un élément peut être la même que les autres, chaque élément aura un index différent. En utilisant ces numéros d’index, vous pouvez facilement accéder aux éléments que vous voulez.
Mais il peut y avoir des situations où vous ne voulez pas de multiples occurrences du même élément ; alors, vous voudrez sûrement supprimer toutes ces occurrences de cet élément particulier d’une liste. En Python, vous pouvez y parvenir de différentes manières.
Utilisez la fonction filter()
pour supprimer toutes les instances d’un élément d’une liste en Python
En Python, le filtrage des éléments devient plus facile à l’aide de la fonction filter()
. La fonction filter()
prend deux arguments, le premier argument est une fonction, et le second argument peut être des ensembles, des listes, des tuples, etc.
Exemple 1 : Fonction filter()
avec __ne__
myList = [2, 1, 3, 5, 1, 1, 1, 0]
myList = list(filter((1).__ne__, myList))
print(myList)
Production :
[2, 3, 5, 0]
Dans cet exemple, vous avez une liste myList
dans laquelle vous souhaitez supprimer l’occurrence de 1
. La fonction filter()
prend une autre fonction, __ne__
, qui retournera un booléen True
ou False
selon que la valeur 1
est présente dans la liste myList
ou non. Si la valeur 1
est présente à l’intérieur de la liste, elle la rejettera simplement. Ensuite, tout ce qui sera retourné par la fonction filter()
sera converti en une liste en utilisant la fonction list()
.
Exemple 2 : Fonction filter()
avec la fonction lambda
myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1
result = filter(lambda val: val != valueToBeRemoved, myList)
print(list(result))
Production :
[2, 3, 5, 0]
Au lieu de passer la fonction __ne__
, nous passons une fonction lambda
à la fonction filter()
.
Dans la liste myList
, vous prendrez chaque élément un par un et le stockerez dans la variable val
. Si les éléments présents à l’intérieur de val
et de valueToBeRemoved
ne sont pas égaux, seuls ceux présents à l’intérieur de val
sont ajoutés à la nouvelle variable result
. Vous devez convertir le result
en une liste en utilisant la fonction list()
.
Utilisez la compréhension de liste pour supprimer toutes les instances d’un élément d’une liste en Python
Un List comprehension est un code d’écriture court. La compréhension de liste est plus rapide que les fonctions et les boucles normales.
Exemple de code :
myList = [1, 2, 3, 4, 2, 2, 3]
valueToBeRemoved = 2
myList = [value for value in myList if value != valueToBeRemoved]
print(myList)
Production :
[1, 3, 4, 3]
Vous avez une liste myList
dans laquelle vous souhaitez supprimer l’occurrence de l’élément 2
. Le code principal pour supprimer toutes les instances d’un élément se trouve entre les crochets []
. Ici, la boucle for
s’exécutera en premier, puis elle prendra une valeur de la liste myList
et la stockera dans la variable value
. Après cela, si la valeur à l’intérieur de la variable value
et la variable valueToBeRemoved
ne correspondent pas, il ne retournera que la valeur de la variable value
et la stockera dans la liste myList
. Ce processus se poursuivra jusqu’à ce que la liste soit vide. Enfin, vous aurez une liste qui contiendra la sortie souhaitée que vous souhaitez.
Utilisez la fonction remove()
pour supprimer toutes les instances d’un élément d’une liste en Python
La fonction remove()
ne supprime que la première occurrence de l’élément. Si vous voulez supprimer toutes les occurrences d’un élément en utilisant la fonction remove()
, vous pouvez utiliser une boucle soit for
loop soit while
loop.
myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1
try:
while True:
myList.remove(valueToBeRemoved)
except ValueError:
pass
print(myList)
Production :
[2, 3, 5, 0]
Dans le code ci-dessus, vous avez créé une liste myList
, puis vous avez une variable valueToBeRemoved
, qui contiendra l’élément dont vous souhaitez supprimer l’occurrence de la liste dans ce cas 1
. En parcourant la liste en boucle, si cet élément est dans la liste, il sera supprimé de la liste en utilisant la fonction remove()
.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn