Python filtrs ()

Metode filter () konstruē iteratoru no iterējama elementa, kuram funkcija atgriež true.

Vienkāršiem vārdiem, filter()metode filtrē doto iterējamo ar funkcijas palīdzību, kas pārbauda katru iterējamo elementu patiesumu vai nē.

Metodes sintakse filter()ir:

 filtrs (funkcija, iterējama)

filtrs () Parametri

filter() metode prasa divus parametrus:

  • function - funkcija, kas pārbauda, ​​vai iterējamo elementu atgriešanās ir patiesa vai nepatiesa.
    Ja nav, funkcija pēc noklusējuma ir funkcija Identity - kas atgriež false, ja kādi elementi ir nepatiesi
  • iterējams - iterējams, kas jāfiltrē, var būt visu iteratoru kopas, saraksti, kopas vai konteineri

Atgriezeniskā vērtība no filtra ()

filter() metode atgriež iteratoru, kas izturēja katra iterējamā elementa funkciju pārbaudi.

filter() metode ir līdzvērtīga:

 # kad funkcija ir definēta (iterējama elementa elements, ja funkcija (elements)) # kad funkcija nav (elementa iterējams elements elements, ja elements)

1. piemērs: Kā filtrs () darbojas atkārtojamā sarakstā?

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

Rezultāts

 Filtrētie patskaņi ir: aeio 

Šeit mums ir burtu saraksts, un mums ir jāfiltrē tikai tajā esošie patskaņi.

Mēs varētu izmantot for for loop, lai apietu katru burtu saraksta elementu un saglabātu to citā sarakstā, taču Python šis process ir vienkāršāks un ātrāks, izmantojot filter()metodi.

Mums ir funkcija, filterVowelskas pārbauda, ​​vai burts ir patskaņs. Šī funkcija tiek nodota filter()metodei ar burtu sarakstu.

filter()metodi tad katru burtu nodod filterVowels()metodei, lai pārbaudītu, vai tā atgriež patiesu vai nē. Galu galā tas rada iteratoru no tiem, kas atgriežas patiesā (patskaņi).

Tā kā iterators pats neglabā vērtības, mēs to caurskatām un pēc kārtas izdrukājam patskaņus.

2. piemērs: Kā filtra () metode darbojas bez filtra funkcijas?

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

Rezultāts

 Filtrētie elementi ir: 1 a True 0 

Šeit mums ir nejaušs skaitļu, virkņu un loģisko vērtību saraksts randomList.

Mēs nododam randomList filter()metodei ar pirmo parametru (filtra funkciju) kā None.

Ja filtra funkcija ir None, funkcija pēc noklusējuma ir Identity funkcija, un katrs randomList elements tiek pārbaudīts, vai tā ir taisnība vai nē.

Apskatot galīgo filtrēto sarakstu, mēs iegūstam patiesus elementus: 1, a, True and '0'(Arī “0” kā virkne ir taisnība).

Interesanti raksti...