Filtrs ir iebūvēta Python funkcija. Tas filtrē norādīto secību vai iterējamo funkciju, izmantojot funkciju, kas katru iterācijas elementu vai elementu pārbauda kā patiesu vai nepatiesu. Vienkāršāk sakot, filtra funkcija filtrē atkārtojamo funkciju caur funkciju. Dotā funkcija pārbauda katru secības vai iterējamo elementu un atgriež patieso, ja vienums atbilst norādītajiem kritērijiem. Rezultātā funkcija filter () konstruē jaunu iteratoru. Visbiežāk izmantotie atkārtojamie ir saraksti, raksti un vārdnīcas. Šajā rakstā ar piemēru palīdzību īsi aprakstīta funkcija filter ().
Filtra () funkcijas sintakse
Vispirms apspriedīsim filtra () funkcijas sintaksi. Funkcijas filter () sintakse ir šāda:
fileja (funkcija, iterējama vai secība)Filtrēšanas funkcija kā argumentu ņem divus parametrus, t.i.e., funkcija un atkārtojama. Funkcija pārbauda katru iterable elementu vai vienumu, neatkarīgi no tā, vai tas ir patiess vai nē, saskaņā ar norādītajiem kritērijiem. Otrais arguments ir iterējams vai filtrējama secība. Funkcija novērtē katru iterējamo vienumu pēc dotajiem kritērijiem. Visbeidzot, funkcija filter () atgriež filtrēto iteratoru.
Apskatīsim funkcijas filter () piemērus un ieviesīsim to mūsu Python skriptā. Mēs izmantojam spyder3 redaktoru, lai izveidotu un palaistu Python skriptus.
1. piemērs: filtrējiet numuru sarakstu
Izveidosim numuru sarakstu un filtrēsim to. Šajā piemērā list_func () novērtē katru saraksta vienumu ar noteiktu nosacījumu. Ja saraksta vienums ir lielāks par 5, funkcija atgriež patiesu un pievieno vienumu filtram.
# numuru saraksta izveidemy_list = [1,2,3,4,5,6,10,20,35,8,4,50,60]
# funkcijas izveide
def list_func (listObj):
# nosacīts paziņojums, lai pārbaudītu numuru
ja (listObj> 5):
atgriezties True
cits:
atgriezties Nepatiesa
# izmantojot filtrēšanas funkciju, lai filtrētu iterējamo caur list_func
numuri = filtrs (saraksta_funkcija, mans_ saraksts)
# jaunā iteratora izdrukāšana
i skaitļos:
drukāt (i)
Rezultāts
Rezultātā tiek parādīts filtrētais iterators. Filtrēto iteratoru veido visi elementi, kas ir lielāki par 5.
2. piemērs: filtrējiet rakstzīmju sarakstu
Izveidosim rakstzīmju sarakstu un pielietosim filtra funkciju.
# numuru saraksta izveidemy_list = ['a', 'b', 'c', 'l', 'd', 'i', 'k', 'n', 'o', 'u', 'x']
# funkcijas izveide
def list_func (listObj):
word_list = ['l', 'i', 'n', 'u', 'x']
# nosacīts paziņojums, lai pārbaudītu rakstzīmi
ja (listObj vārdu_listā):
atgriezties True
cits:
atgriezties Nepatiesa
# izmantojot filtra funkciju, lai filtrētu iterējamo caur list_func
vārdi = filtrs (list_func, my_list)
# jaunā iteratora izdrukāšana
priekš i vārdiem:
drukāt (i)
Rezultāts
3. piemēri: filtrējiet pāra skaitli
Filtrēsim pāra skaitļus no norādītā skaitļu saraksta, izmantojot filtrēšanas funkciju.
# numuru saraksta izveidemy_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
# funkcijas izveide
def list_func (listObj):
# nosacīts paziņojums, lai pārbaudītu pāra skaitli
ja (listObj% 2 == 0):
atgriezties True
cits:
atgriezties Nepatiesa
# izmantojot filtra funkciju, lai filtrētu iterējamo caur list_func
even_numbers = filtrs (list_func, my_list)
# jaunā iteratora izdrukāšana
priekš i pāra skaitļos:
drukāt (i)
Rezultāts
4. piemēri: filtrējiet pārciesto gadu
Filtrēsim lēciena gadus no norādītā gadu saraksta, izmantojot filtrēšanas funkciju.
# numuru saraksta izveidemy_list = [2010,2012,2014,2016,2018,2020,2022,2024]
# funkcijas izveide
def list_func (listObj):
# nosacīts paziņojums, lai pārbaudītu garo gadu
ja (listObj% 4 == 0):
atgriezties True
cits:
atgriezties Nepatiesa
# izmantojot filtra funkciju, lai filtrētu iterējamo caur list_func
leap_year = filtrs (list_func, my_list)
# jaunā iteratora izdrukāšana
priekš i izlaiduma gadā:
drukāt (i)
Rezultāts
Rezultātā tiek parādīti lēciena gadi no norādītā gadu saraksta.
5. piemēri: lambda funkcijas izmantošana ar filtru ()
Filtra funkciju galvenokārt izmanto ar lambda funkciju. Nodosim lambda funkciju kā argumentu, lai filtrētu () funkciju.
# numuru saraksta izveidemy_list = [2010,2012,2014,2016,2018,2020,2022,2024]
# mainīga pāra skaitļa deklarēšana
Mainīgais #even_number satur pāra skaitļus
#izmantojot lambda funkciju
even_number = filtrs (lambda listObj: listObj% 2 == 0, my_list)
drukāt ("Pāra skaitļu saraksts")
priekš i pāra skaitlis:
drukāt (i)
leap_year = filtrs (lambda listObj: listObj% 4 == 0, my_list)
drukāt ("Pārlēkto gadu saraksts")
par x lēciena gadā:
drukāt (x)
Rezultāts
Secinājums
Filtrs () ir iebūvēta Python funkcija, kuru izmanto, lai filtrētu iterējamo funkciju attiecīgajā funkcijā. Šajā rakstā ir izskaidrota filtra () funkcija ar piemēriem.