Python

Python filtra funkcija

Python filtra funkcija

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 izveide
my_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 izveide
my_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 izveide
my_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 izveide
my_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 izveide
my_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.

Vulkan Linux lietotājiem
Ar katru jauno grafisko karšu paaudzi mēs redzam, kā spēļu izstrādātāji pārspēj grafiskās uzticamības robežas un tuvojas fotoreālismam. Neskatoties uz...
OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...