Filtre Python ()

La méthode filter () construit un itérateur à partir des éléments d'un itérable pour lequel une fonction renvoie true.

En termes simples, la filter()méthode filtre l'itérable donné à l'aide d'une fonction qui teste que chaque élément de l'itérable est vrai ou non.

La syntaxe de la filter()méthode est:

 filtre (fonction, itérable)

filter () Paramètres

filter() La méthode prend deux paramètres:

  • function - fonction qui teste si les éléments d'un itérable renvoient true ou false
    Si aucun, la fonction par défaut est Identity function - qui retourne false si des éléments sont faux
  • iterable - iterable qui doit être filtré, peut être des ensembles, des listes, des tuples ou des conteneurs de n'importe quel itérateur

Valeur renvoyée par le filtre ()

filter() La méthode retourne un itérateur qui a réussi la vérification de fonction pour chaque élément de l'itérable.

filter() méthode équivaut à:

 # quand la fonction est définie (élément pour élément dans itérable si fonction (élément)) # quand fonction est Aucune (élément pour élément dans itérable si élément)

Exemple 1: Comment fonctionne filter () pour une liste itérable?

 # list of letters letters = ('a', 'b', 'd', 'e', 'i', 'j', 'o') # function that filters vowels def filterVowels(letter): vowels = ('a', 'e', 'i', 'o', 'u') if(letter in vowels): return True else: return False filteredVowels = filter(filterVowels, letters) print('The filtered vowels are:') for vowel in filteredVowels: print(vowel)

Production

 Les voyelles filtrées sont: aeio 

Ici, nous avons une liste de lettres et nous devons filtrer uniquement les voyelles.

Nous pourrions utiliser une boucle for pour parcourir chaque élément de la liste de lettres et le stocker dans une autre liste, mais en Python, ce processus est plus facile et plus rapide en utilisant la filter()méthode.

Nous avons une fonction filterVowelsqui vérifie si une lettre est une voyelle ou non. Cette fonction est passée à la filter()méthode avec la liste des lettres.

filter()La méthode passe ensuite chaque lettre à la filterVowels()méthode pour vérifier si elle renvoie true ou non. En fin de compte, il crée un itérateur de ceux qui retournent vrai (voyelles).

Puisque l'itérateur ne stocke pas les valeurs lui-même, nous le parcourons en boucle et imprimons les voyelles une par une.

Exemple 2: Comment fonctionne la méthode filter () sans la fonction filter?

 # random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)

Production

 Les éléments filtrés sont: 1 a True 0 

Ici, nous avons une liste aléatoire de nombres, de chaînes et de booléens dans randomList.

Nous passons randomList à la filter()méthode avec le premier paramètre (fonction de filtre) comme None.

Avec la fonction de filtre None, la fonction par défaut est la fonction Identity, et chaque élément de randomList est vérifié s'il est vrai ou non.

Lorsque nous parcourons la dernière filteredList, nous obtenons les éléments qui sont vrais: 1, a, True and '0'('0' comme chaîne est également vrai).

Articles intéressants...