Python filter() Function : comment filtrer des itérables avec des conditions ?
Avec la fonction filter()
de Python, vous filtrez un itérable selon une condition spécifique et créez ainsi un nouvel itérateur qui ne contient que les valeurs vérifiées. Cela fonctionne aussi avec des chaînes de caractères ou pour supprimer les valeurs nulles.
Qu’est-ce que Python filter()
?
Avec la fonction Python filter()
, vous pouvez appliquer une condition à un itérable et sélectionner uniquement les éléments qui satisfont cette condition. Ces éléments sont ensuite renvoyés sous forme d’itérateur. La condition est considérée comme remplie si elle n’est pas « 0 » ou « false ». Bien qu’il existe d’autres options pour filtrer par exemple une liste ou un dictionnaire, Python filter()
peut être utilisé de manière particulièrement efficace. La fonction ne crée qu’un objet qui fait référence à l’itérable de départ et ne fournit que la fonction fournie et un index. Elle est ainsi beaucoup moins encombrante que les autres options.
Python Filter()
Function : syntaxe et paramètres
La syntaxe de Python filter()
se présente comme suit :
Python filter()
a donc deux paramètres :
function
: cet argument indique une fonction qui sera appliquée à chaque élément à l’intérieur de l’itérable. Il renvoie une valeur booléenne (« true » ou « false »).iterable
: ce paramètre indique la séquence qui doit être filtrée par la fonction Pythonfilter()
. Il peut s’agir par exemple d’une liste, d’un ensemble, d’une autre itérable ou d’un tuple Python.
La fonction vérifie donc que chaque élément de l’itérable remplit la condition. Si celle-ci est « true », l’élément est pris en compte pour la nouvelle séquence. Si l’élément ne remplit pas la condition, il n’est plus inclus dans la liste. Nous vous montrons le fonctionnement exact dans les paragraphes suivants à l’aide de quelques exemples pratiques.
Exemple pour Python filter()
Dans notre premier exemple, nous utilisons une série de nombres et nous voulons demander au système de ne prendre en compte que les valeurs supérieures à 10. Pour cela, nous utilisons Python filter()
. Le code correspondant se présente ainsi :
Nous obtenons alors cette nouvelle liste :
La fonction Python filter()
avec des chaînes de caractères
Bien sûr, filter()
fonctionne aussi avec des chaînes de caractères Python (strings en anglais). Dans l’exemple suivant, nous indiquons au système de ne prendre en compte que les voyelles. Voici le code correspondant :
Nous avons converti la sortie en un tuple. Elle ressemble à ceci :
Combinaison avec Lambda
Il est possible de combiner la fonction Python filter()
avec une fonction Lambda ; il s’agit d’une fonction anonyme qui est surtout utilisée localement. Dans notre exemple, nous choisissons une séquence de nombres et demandons au système de ne prendre en compte que les nombres pairs. Voici le code :
Nous obtenons alors la sortie suivante :
La fonction filter()
avec None
Si vous passez None
comme premier argument à filter()
de Python, le système reçoit l’instruction de ne filtrer que les valeurs « false ». Il s’agit de valeurs qui, selon le principe booléen, ne sont ni vraies (true) ni fausses (false), mais qui ont au contraire une valeur nulle ; elles sont donc en principe vides. Pour notre exemple, nous choisissons une liste de valeurs différentes. Celles-ci sont des valeurs entières, vides ou booléennes. Nous utilisons ensuite Python filter()
avec None
et trions ainsi les valeurs qui ne remplissent pas notre condition. Voici le code approprié :
La sortie est alors la suivante :
Supprimer les chaînes vides avec Python filter()
Si vous souhaitez également supprimer des chaînes vides, le plus simple est d’utiliser Python filter()
. La commande correspondante pourrait par exemple ressembler à ceci :
Pour la sortie, les chaînes vides sont supprimées et seules les chaînes avec une valeur sont prises en compte. Cela ressemble à ceci :
Détection automatique du framework, environnement de simulation et nombreuses autres fonctions : avec Deploy Now de IONOS, les résultats sont automatiquement déployés sur une infrastructure fiable. Choisissez le tarif le plus adapté à vos besoins !