La fonction filter() des listes Python

 

1. A propos de la fonction filter()

La fonction filter() est une fonction built-in de Python qui permet de filtrer les éléments d'un itérable (liste, tuple, etc.) en fonction d'une condition définie par une fonction. Elle retourne un objet filter (un itérateur) contenant uniquement les éléments pour lesquels la fonction de filtrage renvoie True. Cette fonction est très utile pour effectuer des opérations de filtrage de manière concise et lisible.

 

2. Syntaxe et paramètres de base

La syntaxe de la fonction filter() est : filter(fonction, iterable). Le premier paramètre est la fonction de filtrage (peut être None, une fonction nommée, une lambda, etc.) et le second est l'itérable à filtrer.

Sortie :

 

3. Utilisation avec différentes fonctions de filtrage

3.1 Avec une fonction lambda

On peut utiliser une fonction lambda pour définir la condition de filtrage de manière concise, sans avoir à déclarer une fonction séparée.

Sortie :

3.2 Avec None comme fonction

Lorsqu'on passe None comme fonction, filter() conserve uniquement les éléments qui sont évalués à True (éléments truthy). Cela permet de supprimer facilement les valeurs "fausses" comme 0, None, '', [], etc.

Sortie :

 

4. Exemples pratiques avancés

4.1 Filtrage de chaînes de caractères

On peut filtrer des chaînes de caractères selon différentes conditions, comme la présence d'une sous-chaîne, la longueur, ou d'autres critères.

Sortie :

4.2 Filtrage d'objets complexes

filter() fonctionne également avec des structures de données complexes, comme des listes de dictionnaires ou d'objets.

Sortie :

 

5. Comparaison avec les compréhensions de liste

Le filtrage peut également être réalisé avec des compréhensions de liste. Voici une comparaison entre les deux approches pour comprendre quand utiliser l'une ou l'autre.

Sortie :

Note : Les compréhensions de liste sont souvent préférées pour leur lisibilité, mais filter() peut être plus performant avec des fonctions de filtrage pré-définies et est utile dans un contexte de programmation fonctionnelle.

 

6. Bonnes pratiques et pièges à éviter

Lors de l'utilisation de filter(), il faut toujours garder à l'esprit quelques points clés pour éviter les erreurs courantes.

Sortie :

Remarque

N'oubliez pas que filter() retourne un itérateur qui ne peut être parcouru qu'une seule fois. Si vous avez besoin de réutiliser le résultat plusieurs fois, convertissez-le immédiatement en liste ou en tuple.

Leave a Reply

Your email address will not be published. Required fields are marked *