Metoda filter() filtrira dano zaporedje s pomočjo funkcije, ki preveri, ali je vsak element v zaporedju resničen ali ne.
Sintaksa Python filter().
Metoda filter() v Python ima naslednjo sintakso:
Sintaksa: filter (funkcija, zaporedje)
Parametri:
chiranjeevi igralec
- funkcija: funkcija, ki preverja, ali je vsak element zaporedja resničen ali ne.
- zaporedje: zaporedje, ki ga je treba filtrirati, so lahko nabori, seznami, tuple ali vsebniki poljubnih iteratorjev.
Vrne: iterator, ki je že filtriran.
Primeri funkcij filtra Python
Oglejmo si nekaj primerov funkcije filter() v Pythonu.
Funkcija filtra Python s funkcijo po meri
V tem primeru uporabljamo funkcijo filtra skupaj s funkcijo po meri zabava() za filtriranje samoglasnikov iz Seznam Python .
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)> |
>
vikas divyakirti
>
Izhod:
The filtered letters are: e e>
Funkcija filtra v Pythonu z Lambdo
Funkcija Python filter() se običajno uporablja z Lambda funkcije . V tem primeru uporabljamo funkcijo lambda za filtriranje sodih in lihih števil s seznama.
Python3
# 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))> |
poskusi blok catch v javi
>
>
Izhod:
[1, 3, 5, 13] [0, 2, 8]>
Funkcija filtra v Pythonu z Lambda in funkcijo po meri
V tem programu bomo uporabili tako funkcijo po meri je_več_od_3() kot tudi lambda funkcija. Funkcija filter() se uporablja za uporabo te funkcije za vsak element seznama številk, funkcija lambda pa za ponavljanje vsakega elementa seznama pred uporabo pogoja. Tako lahko izvedemo dodatne operacije na vsakem elementu, preden uporabimo pogoj.
Python3
# 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)> |
>
linux, kako preimenovati imenik
>Izhod
[3, 6, 9]>
Analiza časovne kompleksnosti
- Funkcija filtra se uporablja za filtriranje seznama številk in uporabi funkcijo lambda za vsak element seznama. Časovna kompleksnost funkcije filtra je O(n), kjer je n število elementov na seznamu.
- Časovna kompleksnost funkcije lambda je konstantna, O(1), saj izvede samo eno aritmetično operacijo. Zato je celotna časovna zahtevnost programa O(n).
Analiza pomožnega prostora
Program uporablja seznam za shranjevanje filtriranih števil, zato je kompleksnost prostora sorazmerna s številom filtriranih števil. V najslabšem primeru, če so vse številke večkratniki 3, bo imel filtrirani seznam n/3 elementov. Zato je prostorska kompleksnost O(n/3), kar je poenostavljeno na O(n) v velikem zapisu O.