Filter()-metoden filtrerer den gitte sekvensen ved hjelp av en funksjon som tester hvert element i sekvensen om det er sant eller ikke.
Python filter() Syntaks
Filter()-metoden i Python har følgende syntaks:
Syntaks: filter (funksjon, sekvens)
Parametere:
innkapsling i java
- funksjon: funksjon som tester om hvert element i en sekvens er sant eller ikke.
- sekvens: sekvensen som må filtreres, kan det være sett, lister, tupler eller beholdere av alle iteratorer.
Returnerer: en iterator som allerede er filtrert.
Python-filter Funksjonseksempler
La oss se noen eksempler på filter()-funksjonen i Python.
Python-filterfunksjon med en egendefinert funksjon
I dette eksemplet bruker vi filterfunksjonen sammen med en egendefinert funksjon moro() å filtrere ut vokaler fra Python-liste .
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)> |
java samlinger rammeverk
>
>
Produksjon:
The filtered letters are: e e>
Filterfunksjon i Python med Lambda
Python filter()-funksjonen brukes vanligvis med Lambdafunksjoner . I dette eksemplet bruker vi lambda-funksjonen til å filtrere ut oddetall og partall fra en liste.
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))> |
>
>
Produksjon:
[1, 3, 5, 13] [0, 2, 8]>
Filterfunksjon i Python med Lambda og egendefinert funksjon
I dette programmet vil vi bruke både en egendefinert funksjon is_multiple_of_3() samt lambdafunksjon. Filter()-funksjonen brukes til å bruke denne funksjonen på hvert element i talllisten, og lambda-funksjonen brukes til å iterere over hvert element i listen før betingelsen tas i bruk. På denne måten kan vi utføre ytterligere operasjoner på hvert element før vi bruker betingelsen.
Python3
java do while loop
sonu nigam
# 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)> |
>
>Produksjon
[3, 6, 9]>
Tidskompleksitetsanalyse
- Filterfunksjonen brukes til å filtrere listen over tall, og den bruker lambda-funksjonen på hvert element i listen. Tidskompleksiteten til filterfunksjonen er O(n), der n er antall elementer i listen.
- Tidskompleksiteten til lambdafunksjonen er konstant, O(1), siden den kun utfører en enkelt aritmetisk operasjon. Derfor er den totale tidskompleksiteten til programmet O(n).
Auxiliary Space analyse
Programmet bruker en liste for å lagre de filtrerte tallene, så plasskompleksiteten er proporsjonal med antall filtrerte tall. I verste fall, hvis alle tallene er multipler av 3, vil den filtrerte listen ha n/3 elementer. Derfor er romkompleksiteten O(n/3), som forenkler til O(n) i stor O-notasjon.