Filter()-menetelmä suodattaa annetun sekvenssin funktion avulla, joka testaa sekvenssin jokaisen elementin olevan tosi vai ei.
Python-suodatin() Syntaksi
Filter()-menetelmä sisään Python on seuraava syntaksi:
Syntaksi: suodatin (funktio, järjestys)
Parametrit:
foreach konekirjoitus
- toiminto: funktio, joka testaa, onko sekvenssin jokainen elementti tosi vai ei.
- järjestys: sekvenssi, joka on suodatettava, se voi olla minkä tahansa iteraattorin joukkoja, listoja, monikkoja tai säiliöitä.
Palautukset: iteraattori, joka on jo suodatettu.
Python-suodattimen toimintoesimerkkejä
Katsotaanpa muutamia esimerkkejä Pythonin filter()-funktiosta.
Python-suodatintoiminto mukautetulla funktiolla
Tässä esimerkissä käytämme suodatintoimintoa yhdessä mukautetun toiminnon kanssa hauskaa () suodattaaksesi vokaalit pois Python-lista .
Python
# function that filters vowels> def> fun(variable):> >letters>=> [>'a'>,>'e'>,>'i'>,>'o'>,>'u'>]> >if> (variable>in> letters):> >return> True> >else>:> >return> False> # sequence> sequence>=> [>'g'>,>'e'>,>'e'>,>'j'>,>'k'>,>'s'>,>'p'>,>'r'>]> # using filter function> filtered>=> filter>(fun, sequence)> print>(>'The filtered letters are:'>)> for> s>in> filtered:> >print>(s)> |
>
>
Lähtö:
The filtered letters are: e e>
Suodatintoiminto Pythonissa Lambdan kanssa
Python filter() -funktiota käytetään yleensä Lambda toiminnot . Tässä esimerkissä käytämme lambda-funktiota suodattamaan parittomat ja parilliset luvut luettelosta.
postitilauksen läpikulku
Python 3
# a list contains both even and odd numbers.> seq>=> [>0>,>1>,>2>,>3>,>5>,>8>,>13>]> # result contains odd numbers of the list> result>=> filter>(>lambda> x: x>%> 2> !>=> 0>, seq)> print>(>list>(result))> # result contains even numbers of the list> result>=> filter>(>lambda> x: x>%> 2> =>=> 0>, seq)> print>(>list>(result))> |
>
>
Lähtö:
[1, 3, 5, 13] [0, 2, 8]>
Suodatintoiminto Pythonissa lambdalla ja mukautetulla funktiolla
Tässä ohjelmassa käytämme molempia mukautettuja toimintoja is_multiple_of_3() sekä lambda-toiminto. Filter()-funktiota käytetään soveltamaan tätä funktiota jokaiseen numeroluettelon elementtiin, ja lambda-funktiota käytetään toistamaan luettelon jokainen elementti ennen ehdon soveltamista. Tällä tavalla voimme suorittaa lisätoimintoja jokaiselle elementille ennen ehdon soveltamista.
verkkotopologiat
Python 3
java luontiluettelo
# Define a function to check> # if a number is a multiple of 3> def> is_multiple_of_3(num):> >return> num>%> 3> =>=> 0> # Create a list of numbers to filter> numbers>=> [>1>,>2>,>3>,>4>,>5>,>6>,>7>,>8>,>9>,>10>]> # Use filter and a lambda function to> # filter the list of numbers and only> # keep the ones that are multiples of 3> result>=> list>(>filter>(>lambda> x: is_multiple_of_3(x), numbers))> # Print the result> print>(result)> |
>
>Lähtö
[3, 6, 9]>
Aika monimutkaisuusanalyysi
- Suodatintoimintoa käytetään numeroluettelon suodattamiseen, ja se soveltaa lambda-funktiota luettelon jokaiseen elementtiin. Suodatinfunktion aikamonimutkaisuus on O(n), missä n on listan elementtien lukumäärä.
- Lambda-funktion aikamonimutkaisuus on vakio, O(1), koska se suorittaa vain yhden aritmeettisen toiminnon. Siksi ohjelman kokonaisaika monimutkaisuus on O(n).
Aputila-analyysi
Ohjelma käyttää luetteloa suodatettujen lukujen tallentamiseen, joten avaruuden monimutkaisuus on verrannollinen suodatettujen lukujen määrään. Pahimmassa tapauksessa, jos kaikki luvut ovat 3:n kerrannaisia, suodatetussa luettelossa on n/3 elementtiä. Siksi avaruuden kompleksisuus on O(n/3), mikä yksinkertaistuu O(n):ksi isolla O-merkinnällä.