logo

filter() pythonissa

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

  1. 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ä.
  2. 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ä.