filter() python
La Fonction filter()
en Python
filter()
est une fonction intégrée en Python qui permet de filtrer les éléments d'un itérable en ne conservant que ceux qui répondent à un critère spécifié par une fonction.
Utilisation de Base
Syntaxe
filter(function, iterable)
function
: Une fonction qui teste chaque élément de l'itérable. Doit renvoyer True
pour conserver l'élément, False
pour l'exclure.
iterable
: Un itérable (comme une liste ou un tuple) dont les éléments seront testés.
Exemple
def est_positif(nombre):
return nombre > 0
nombres = [-2, -1, 0, 1, 2]
resultat = filter(est_positif, nombres)
resultat est maintenant un objet filter contenant [1, 2]
.
Caractéristiques de filter()
Renvoie un Objet Filter : filter()
ne retourne pas une liste, mais un objet filter
, qui est un itérable.
Efficacité : Comme map()
, filter()
est efficace avec de grands itérables car il ne stocke pas tous les résultats en mémoire.
Utilisations Courantes
Nettoyage de Données : Idéal pour éliminer des valeurs indésirables d'un ensemble de données. Sélection Basée sur des Critères : Permet de sélectionner des éléments qui répondent à certaines conditions.
Conversion en Liste ou Autres Types de Collections
Pour utiliser les résultats de filter()
, convertissez l'objet filter en une liste ou une autre structure de données :
resultat_liste = list(resultat)
Utilisation avec des Fonctions Lambda
filter()
est souvent utilisé avec des fonctions lambda pour des critères de filtrage simples et anonymes.
resultat = filter(lambda x: x > 0, nombres)
Bonnes Pratiques
Fonctions Pures : Utilisez des fonctions sans effets secondaires pour une meilleure prévisibilité.
Lisibilité vs Compréhension de Liste : filter()
peut être plus lisible que des compréhensions de liste dans certains cas, mais moins dans d'autres. Choisissez en fonction de la clarté.
Évaluation Paresseuse : Utilisez filter()
pour des gains d'efficacité dans le traitement de grands ensembles de données.
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !