logo

filter() i python

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

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