Filter()-metoden filtrerer den givne sekvens ved hjælp af en funktion, der tester hvert element i sekvensen for at være sandt eller ej.
Python filter() Syntaks
Filter()-metoden i Python har følgende syntaks:
Syntaks: filter (funktion, sekvens)
Parametre:
indkapsling i java
- fungere: funktion, der tester, om hvert element i en sekvens er sandt eller ej.
- rækkefølge: sekvens, som skal filtreres, kan det være sæt, lister, tupler eller beholdere af enhver iterator.
Vender tilbage: en iterator, der allerede er filtreret.
Python-filter Funktionseksempler
Lad os se et par eksempler på filter()-funktionen i Python.
Python-filterfunktion med en brugerdefineret funktion
I dette eksempel bruger vi filterfunktionen sammen med en brugerdefineret funktion sjovt() at filtrere 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 ramme
>
>
Produktion:
The filtered letters are: e e>
Filterfunktion i Python med Lambda
Python filter()-funktionen bruges normalt med Lambda funktioner . I dette eksempel bruger vi lambda-funktionen til at filtrere de ulige og lige tal 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))> |
>
>
Produktion:
[1, 3, 5, 13] [0, 2, 8]>
Filterfunktion i Python med Lambda og brugerdefineret funktion
I dette program vil vi bruge både en brugerdefineret funktion er_multiple_of_3() samt en lambda funktion. Filter()-funktionen bruges til at anvende denne funktion på hvert element i tallisten, og lambda-funktionen bruges til at iterere over hvert element på listen, før betingelsen anvendes. På denne måde kan vi udføre yderligere operationer på hvert element, før vi anvender betingelsen.
Python3
java do while loop
simpelt python-program
# 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)> |
>
>Produktion
[3, 6, 9]>
Tidskompleksitetsanalyse
- Filterfunktionen bruges til at filtrere listen over tal, og den anvender lambdafunktionen på hvert element i listen. Filterfunktionens tidskompleksitet er O(n), hvor n er antallet af elementer i listen.
- Tidskompleksiteten af lambda-funktionen er konstant, O(1), da den kun udfører en enkelt aritmetisk operation. Derfor er programmets samlede tidskompleksitet O(n).
Auxiliary Space analyse
Programmet bruger en liste til at gemme de filtrerede tal, så pladskompleksiteten er proportional med antallet af filtrerede tal. I værste fald, hvis alle tal er multipla af 3, vil den filtrerede liste have n/3 elementer. Derfor er rumkompleksiteten O(n/3), hvilket simplificeres til O(n) i stor O-notation.