Python-filter ()

De methode filter () construeert een iterator uit elementen van een iterabele waarvoor een functie true retourneert.

In eenvoudige bewoordingen filter()filtert methode de gegeven iterabele met behulp van een functie die elk element in de iterabele test op waar of niet.

De syntaxis van filter()methode is:

 filter (functie, itereerbaar)

filter () Parameters

filter() methode heeft twee parameters:

  • functie - functie die test of elementen van een itereerbaar resultaat true of false zijn
    Als geen, de functie standaard de Identity function is - die false retourneert als er elementen false zijn
  • itereerbaar - itereerbaar dat moet worden gefilterd, kunnen sets, lijsten, tuples of containers van elke iterator zijn

Retourwaarde van filter ()

filter() method retourneert een iterator die de functiecontrole voor elk element in de iterable heeft doorstaan.

filter() methode is gelijk aan:

 # wanneer functie is gedefinieerd (element voor element in itereerbaar if functie (element)) # wanneer functie Geen is (element voor element in iterabel if element)

Voorbeeld 1: hoe werkt filter () voor een itereerbare lijst?

 # 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)

Uitvoer

 De gefilterde klinkers zijn: aeio 

Hier hebben we een lijst met letters en hoeven we alleen de klinkers erin te filteren.

We zouden een for-lus kunnen gebruiken om door elk element in de letterslijst te lopen en het in een andere lijst op te slaan, maar in Python is dit proces gemakkelijker en sneller met de filter()methode.

We hebben een functie filterVowelsdie controleert of een letter een klinker is of niet. Deze functie wordt doorgegeven aan de filter()methode met de lijst met letters.

filter()method geeft vervolgens elke letter door aan de filterVowels()methode om te controleren of deze true retourneert of niet. Uiteindelijk creëert het een iterator van degenen die true retourneren (klinkers).

Omdat de iterator de waarden zelf niet opslaat, lopen we er doorheen en printen we de klinkers één voor één.

Voorbeeld 2: hoe werkt de methode filter () zonder de filterfunctie?

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

Uitvoer

 De gefilterde elementen zijn: 1 a True 0 

Hier hebben we een willekeurige lijst met getallen, tekenreeksen en boolean in randomList.

We geven randomList door aan de filter()methode met de eerste parameter (filterfunctie) als None.

Met filterfunctie als Geen, is de functie standaard ingesteld op Identiteitsfunctie en wordt elk element in randomList gecontroleerd of het waar is of niet.

Als we de laatste gefilterdeLijst doorlopen, krijgen we de elementen die waar zijn: 1, a, True and '0'('0' als string is ook waar).

Interessante artikelen...