La fonction filter() intégrée de Python est également puissante ; pour effectuer une procédure de filtrage de données sur des séquences telles que des listes, des tuples et des chaînes. La fonction filter() est utilisée pour appliquer une fonction à chaque élément d'un itérable (comme une liste ou un tuple) et renvoyer un autre itérable contenant uniquement les éléments pour lesquels la fonction ramène True. Dans le même esprit, filter() nous permet de filtrer les éléments d'un regroupement en fonction d'une certaine condition. Le premier argument peut être Aucun si la fonction n'est pas disponible et renvoie uniquement les éléments qui sont vrais.
Syntaxe:
filter (function, iterable)
Paramètres
fonction: C'est une fonction. S'il est défini sur Aucun, renvoie uniquement les éléments qui sont vrais.
Itérable : Toute séquence itérable comme une liste, un tuple et une chaîne.
Les deux paramètres sont requis.
Retour
Il renvoie la même chose que celle renvoyée par la fonction.
Voyons quelques exemples de fonction filter() pour comprendre sa fonctionnalité.
if else, instructions java
Exemple de fonction Python filter() 1
Cet exemple simple renvoie des valeurs supérieures à 5 à l'aide de la fonction de filtre. Voir l'exemple ci-dessous.
Code
# Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result))
Sortir:
[6]
Le code définit une fonction appelée filterdata qui prend un seul argument x. Dans cette fonction, nous vérifions en supposant que x est supérieur à 5, et à condition que cela soit vrai, nous imprimons x. Ensuite, nous appelons la fonction filter(), en passant filterdata comme argument principal et un tuple (1, 2, 6) comme argument suivant. La fonction filter() applique la fonction filterdata() à chaque élément du tuple et renvoie un itérateur qui contient uniquement les éléments qui remplissent la condition x > 5. Enfin, nous convertissons l'itérateur en liste en utilisant la fonction list() et imprimez le résultat.
Voici quelques exemples supplémentaires d’utilisation de la méthode filter() en Python :
Exemple 2 :
Filtrez les chaînes vides d'une liste :
Code
# Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result)
Sortir:
[ 'hello', 'world' ]
Dans cet exemple, la fonction lambda vérifie si chaque chaîne n'est pas vide en testant en supposant qu'elle est équivalente à la chaîne vide (''). La fonction filter() renvoie un autre itérable contenant uniquement les chaînes non vides.
Exemple 3 :
Filtrez les nombres négatifs d'une liste :
Code
# Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result)
Sortir:
[1, 3, 5]
Dans cet exemple, la fonction lambda vérifie en supposant que chaque nombre est non négatif en testant s'il est plus important ou équivalent à zéro (0). La fonction filter() renvoie un autre itérable contenant uniquement les nombres non négatifs.
Exemple 4 :
Filtrez les doublons dans une liste :
Code
# Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result)
Sortir:
[ 1, 4, 5 ]
Dans cet exemple, la fonction lambda vérifie si chaque nombre n'apparaît qu'une seule fois dans la liste des nombres en comptant la fréquence à laquelle il apparaît (numbers.count(x)) et en testant si le nombre est équivalent à 1. La fonction filter() renvoie un autre itérable contenant uniquement les nombres uniques.
Remarque : Il est significatif que dans Python 3, la fonction filter() renvoie un itérable, ce qui implique que vous souhaitez vraiment le transformer complètement en liste (comme indiqué dans les exemples ci-dessus) pour l'impliquer en tant que liste. Néanmoins, dans Python 2, la fonction filter() renvoie bien sûr une liste.
Conclusion:
Enfin, la fonction filter() est un outil puissant de manipulation de données en Python. En filtrant un itérable en fonction d'une condition prédéfinie, vous pouvez séparer rapidement et efficacement les données que vous souhaitez réellement. Vous pouvez également utiliser filter() en combinaison avec d'autres fonctions Python pour effectuer des manipulations de données plus complexes.