filter()

Renvoie un itérateur des éléments pour lesquels une fonction renvoie une valeur vraie.

Renvoie
Un itérateur des éléments qui ont passé le test.
Sur cette page

Exemple

#
Python
scores = [45, 82, 67, 91, 30]
passed = list(filter(lambda s: s >= 60, scores))
print(passed)

values = ["Léa", "", None, "Lucas", 0]
print(list(filter(None, values)))
Résultatrésultat enregistré, vous pouvez le vérifier
[82, 67, 91]
['Léa', 'Lucas']

Définition et utilisation

#

La fonction filter(function, iterable) ne laisse passer que les éléments pour lesquels la fonction renvoie une valeur vraie. Le résultat est un itérateur, généralement converti en liste.

Si vous donnez None à la place d’une fonction, filter supprime toutes les valeurs fausses : les zéros, les chaînes vides, None et les collections vides.

Comme pour map, une liste en compréhension avec if est souvent plus lisible : [x for x in items if x > 0].

Syntaxe

#
Syntaxe
filter(function, iterable)

Paramètres

#
  • function

    callable ou None

    La fonction de test, ou None.
  • iterable

    une collection

    Les éléments à filtrer.

Bonnes pratiques

#
  • filter(None, items) est un moyen rapide de supprimer les valeurs vides.
  • Pour des conditions complexes, une liste en compréhension est plus lisible que filter avec une lambda.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.