Python-Filter ()

Die filter () -Methode erstellt einen Iterator aus Elementen einer Iterable, für die eine Funktion true zurückgibt.

Mit einfachen Worten, die filter()Methode filtert die angegebene Iterable mithilfe einer Funktion, die jedes Element in der Iterable auf Richtigkeit prüft oder nicht.

Die Syntax der filter()Methode lautet:

 Filter (Funktion, iterierbar)

filter () Parameter

filter() Methode nimmt zwei Parameter:

  • Funktion - Funktion, die prüft, ob Elemente einer iterierbaren Datei true oder false zurückgeben.
    Wenn None, gibt die Funktion standardmäßig die Identity-Funktion zurück, die false zurückgibt, wenn Elemente false sind
  • iterable - iterable, das gefiltert werden soll, können Mengen, Listen, Tupel oder Container beliebiger Iteratoren sein

Rückgabewert von filter ()

filter() Die Methode gibt einen Iterator zurück, der die Funktionsprüfung für jedes Element in der Iterable bestanden hat.

filter() Methode ist äquivalent zu:

 # wenn Funktion definiert ist (Element für Element in iterable wenn Funktion (Element)) # wenn Funktion None ist (Element für Element in iterable wenn Element)

Beispiel 1: Wie funktioniert filter () für iterierbare Listen?

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

Ausgabe

 Die gefilterten Vokale sind: aeio 

Hier haben wir eine Liste von Buchstaben und müssen nur die darin enthaltenen Vokale herausfiltern.

Wir könnten eine for-Schleife verwenden, um jedes Element in der Buchstabenliste zu durchlaufen und in einer anderen Liste zu speichern, aber in Python ist dieser Prozess mit der filter()Methode einfacher und schneller .

Wir haben eine Funktion filterVowels, die prüft, ob ein Buchstabe ein Vokal ist oder nicht. Diese Funktion wird filter()mit der Liste der Buchstaben an die Methode übergeben.

filter()Die Methode übergibt dann jeden Buchstaben an die filterVowels()Methode, um zu überprüfen, ob er true zurückgibt oder nicht. Am Ende wird ein Iterator derjenigen erstellt, die true zurückgeben (Vokale).

Da der Iterator die Werte selbst nicht speichert, durchlaufen wir sie und drucken die Vokale nacheinander aus.

Beispiel 2: Wie funktioniert die filter () -Methode ohne die Filterfunktion?

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

Ausgabe

 Die gefilterten Elemente sind: 1 a True 0 

Hier haben wir eine zufällige Liste von Zahlen, Zeichenfolgen und Booleschen Werten in randomList.

Wir übergeben randomList an die filter()Methode mit dem ersten Parameter (Filterfunktion) als None.

Wenn die Filterfunktion Keine ist, wird standardmäßig die Identitätsfunktion verwendet, und jedes Element in randomList wird überprüft, ob es wahr ist oder nicht.

Wenn wir die endgültige gefilterte Liste durchlaufen, erhalten wir die Elemente, die wahr sind: 1, a, True and '0'('0' als Zeichenfolge ist auch wahr).

Interessante Beiträge...