Filtr Pythona ()

Metoda filter () tworzy iterator z elementów iterowalnej, dla której funkcja zwraca wartość true.

W prostych słowach filter()metoda filtruje daną iterowalność za pomocą funkcji, która sprawdza, czy każdy element w iterowalnym jest prawdziwy lub nie.

Składnia filter()metody to:

 filtr (funkcja, iterowalna)

filter () Parametry

filter() metoda przyjmuje dwa parametry:

  • function - funkcja, która sprawdza, czy elementy iterowalnego zwracają true czy false
    Jeśli None, funkcja domyślnie zwraca wartość Identity function - która zwraca false, jeśli którykolwiek element jest false
  • iterowalny - iterowalny, który ma być filtrowany, może być zestawami, listami, krotkami lub kontenerami dowolnych iteratorów

Wartość zwracana z filtra ()

filter() zwraca iterator, który przeszedł kontrolę funkcji dla każdego elementu w iterowalnej.

filter() metoda jest równoważna z:

 # gdy funkcja jest zdefiniowana (element dla elementu w iterowalnym if function (element)) # gdy funkcja ma wartość None (element dla elementu w iterowalnym elemencie if)

Przykład 1: Jak działa filter () dla listy iterowalnej?

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

Wynik

 Filtrowane samogłoski to: aeio 

Tutaj mamy listę liter i musimy odfiltrować tylko zawarte w niej samogłoski.

Moglibyśmy użyć pętli for, aby przejść przez każdy element z listy liter i zapisać go na innej liście, ale w Pythonie ten proces jest łatwiejszy i szybszy przy użyciu filter()metody.

Mamy funkcję, filterVowelsktóra sprawdza, czy litera jest samogłoską, czy nie. Ta funkcja jest przekazywana do filter()metody z listą liter.

filter()następnie przekazuje każdą literę do filterVowels()metody, aby sprawdzić, czy zwraca prawdę, czy nie. W końcu tworzy iterator tych, które zwracają prawdę (samogłoski).

Ponieważ iterator nie przechowuje samych wartości, przechodzimy przez niego w pętli i drukujemy samogłoski jedna po drugiej.

Przykład 2: Jak działa metoda filter () bez funkcji 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)

Wynik

 Filtrowane elementy to: 1 a True 0 

Tutaj mamy losową listę liczb, ciąg i wartość logiczną w randomList.

Przekazujemy randomList do filter()metody z pierwszym parametrem (funkcją filtru) jako None.

Gdy funkcja filtru jest ustawiona na Brak, funkcja domyślnie przyjmuje funkcję Identity, a każdy element w randomList jest sprawdzany, czy jest prawdziwy, czy nie.

Kiedy przechodzimy przez pętlę przez końcową filterList, otrzymujemy elementy, które są prawdziwe: 1, a, True and '0'(„0” jako łańcuch również jest prawdziwe).

Interesujące artykuły...