Filtru Python ()

Metoda filter () construiește un iterator din elementele unui iterabil pentru care o funcție returnează adevărat.

În cuvinte simple, filter()metoda filtrează iterabilul dat cu ajutorul unei funcții care testează fiecare element din iterabil pentru a fi adevărat sau nu.

Sintaxa filter()metodei este:

 filtru (funcție, iterabil)

filter () Parametri

filter() metoda are doi parametri:

  • funcție - funcție care testează dacă elementele unui iterabil returnează adevărat sau fals
    Dacă nu există, funcția implicită este funcția Identitate - care returnează fals dacă vreun element este fals
  • iterabil - iterabil care urmează să fie filtrat, ar putea fi seturi, liste, tupluri sau containere ale oricărui iterator

Returnează valoarea din filter ()

filter() metoda returnează un iterator care a trecut verificarea funcției pentru fiecare element din iterabil.

filter() metoda este echivalentă cu:

 # când funcția este definită (element pentru element în iterabil dacă funcție (element)) # când funcția este Nici unul (element pentru element în iterabil dacă element)

Exemplul 1: Cum funcționează filter () pentru lista iterabilă?

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

Ieșire

 Vocalele filtrate sunt: ​​aeio 

Aici avem o listă de litere și trebuie să filtrăm numai vocalele din ea.

Am putea folosi o buclă for pentru a parcurge fiecare element din lista de litere și a o stoca într-o altă listă, dar în Python, acest proces este mai ușor și mai rapid folosind filter()metoda.

Avem o funcție filterVowelscare verifică dacă o literă este sau nu o vocală. Această funcție este transmisă filter()metodei cu lista de litere.

filter()metoda apoi transmite fiecare literă filterVowels()metodei pentru a verifica dacă returnează adevărat sau nu. În cele din urmă, creează un iterator al celor care returnează adevărat (vocale).

Deoarece iteratorul nu stochează valorile în sine, îl parcurgem și imprimăm vocalele una câte una.

Exemplul 2: Cum funcționează metoda filter () fără funcția de filtrare?

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

Ieșire

 Elementele filtrate sunt: ​​1 un adevărat 0 

Aici, avem o listă aleatorie de numere, șir și boolean în randomList.

Trecem randomList la filter()metoda cu primul parametru (funcția de filtrare) ca None.

Cu funcția de filtrare ca None, funcția implicită este funcția Identity și fiecare element din randomList este verificat dacă este adevărat sau nu.

Când parcurgem lista filtrată finală, obținem elementele care sunt adevărate: 1, a, True and '0'(„0” ca șir este, de asemenea, adevărat).

Articole interesante...