📜  Filter les nombres d'une liste - Python (1)

📅  最后修改于: 2023-12-03 15:30:45.759000             🧑  作者: Mango

Filter les nombres d'une liste - Python

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.

Listes numériques

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]
Filtrer les nombres

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.

Conclusion

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.