„Python“ filtras ()

„Filter ()“ metodas sukuria iteratorių iš iteruojamų elementų, kuriems funkcija grąžina tikrąją reikšmę.

Paprastais žodžiais tariant, filter()metodas filtruoja pateiktą iterable naudodamas funkciją, kuri patikrina, ar kiekvienas iterable elementas yra tikras, ar ne.

filter()Metodo sintaksė yra:

 filtras (funkcija, kartojamas)

filtras () Parametrai

filter() metodas apima du parametrus:

  • function - funkcija, kuri patikrina, ar iteruojamo elemento grąža yra teisinga, ar klaidinga.
    Jei nėra, funkcija pagal numatytuosius nustatymus yra funkcija Identity
  • iterable - iterable, kuris turi būti filtruojamas, gali būti bet kokių iteratorių rinkiniai, sąrašai, rinkiniai ar konteineriai

Grąžinimo vertė iš filtro ()

filter() metodas pateikia iteratorių, kuris išlaikė kiekvieno iteruojamo elemento funkcijų patikrą.

filter() metodas yra lygiavertis:

 # kai apibrėžta funkcija (elemento elementas iterable, jei funkcija (elementas)) # kai funkcija yra None (elementas iterable elementui, jei elementas)

1 pavyzdys: Kaip filtras () veikia kartojamą sąrašą?

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

Rezultatas

 Filtruoti balsiai yra: aeio 

Čia mes turime raidžių sąrašą ir turime išfiltruoti tik jame esančius balsius.

Mes galime naudoti „for loop“, norėdami peržvelgti kiekvieną raidžių sąrašo elementą ir išsaugoti jį kitame sąraše, tačiau „Python“ šis procesas yra lengvesnis ir greitesnis naudojant filter()metodą.

Mes turime funkciją, filterVowelskuri tikrina, ar raidė yra balsis, ar ne. Ši funkcija perduodama filter()metodui su raidžių sąrašu.

filter()metodas tada perduoda kiekvieną raidę filterVowels()metodui patikrinti, ar ji teisinga, ar ne. Galų gale, tai sukuria pakartotinį tuos, kurie grąžina tikrąją (balsius).

Kadangi iteratorius pats nesaugo reikšmių, mes juos perskaitome ir išspausdiname balses po vieną.

2 pavyzdys: Kaip veikia filtro () metodas be filtro funkcijos?

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

Rezultatas

 Filtruoti elementai yra: 1 a True 0 

Čia mes turime atsitiktinį skaičių, eilučių ir loginių reikšmių sąrašą „randomList“.

Mes perduodame randomList filter()metodui, kurio pirmasis parametras (filtro funkcija) yra Nėra.

Kai filtro funkcija yra Nėra, funkcija pagal numatytuosius nustatymus yra „Identity“ funkcija, o kiekvienas „randomList“ elementas yra tikrinamas, ar jis teisingas, ar ne.

Peržvelgus paskutinį filtruotą sąrašą, gaunami tikri elementai: 1, a, True and '0'(„0“ kaip eilutė taip pat teisinga).

Įdomios straipsniai...