📅  最后修改于: 2023-12-03 15:30:45.759000             🧑  作者: Mango
Lorsque l'on travaille avec des listes contenant des éléments de différents types, il peut être utile de ne garder que les éléments numériques. Python dispose d'une fonction filter
qui permet de réaliser cette opération très facilement.
Tout d'abord, il est important de savoir comment définir une liste numérique. Voici un exemple :
liste = [1, 2, 3, 4, 5]
Cette liste contient uniquement des nombres entiers. Il est également possible de définir une liste de nombres à virgule flottante :
liste = [1.0, 2.5, 3.75, 4.25, 5.0]
Maintenant que nous avons une liste numérique, nous pouvons utiliser la fonction filter
pour ne garder que les nombres. La syntaxe de filter
est la suivante :
nouvelle_liste = list(filter(condition, liste))
La fonction filter
prend en premier argument une fonction qui définit la condition permettant de garder ou non un élément de la liste. Cette fonction doit renvoyer True
ou False
en fonction de la valeur de l'élément. En deuxième argument, on passe la liste à filtrer.
Voici un exemple de condition pour filtrer les nombres :
def est_nombre(element):
return isinstance(element, (int, float))
Dans cet exemple, la fonction est_nombre
teste si l'élément est de type int
ou float
. Si c'est le cas, la fonction renvoie True
, sinon elle renvoie False
.
Nous pouvons maintenant filtrer notre liste :
liste = [1, 'deux', 3.0, 'quatre', 5]
nouvelle_liste = list(filter(est_nombre, liste))
print(nouvelle_liste)
Ce code affichera :
[1, 3.0, 5]
On remarque que les éléments non numériques ont été supprimés de la liste.
La fonction filter
est très utile pour filtrer une liste en fonction de la valeur de ses éléments. En combinant filter
avec une fonction de test adéquate, il est possible de ne garder que les éléments souhaités dans une liste.