filter() python

9 min 5 exercices Niveau 4

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.

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus