logo

filter() i python

Metoden filter() filtrerar den givna sekvensen med hjälp av en funktion som testar att varje element i sekvensen är sant eller inte.

Python filter() Syntax

Metoden filter() i Pytonorm har följande syntax:



Syntax: filter(funktion, sekvens)

Parametrar:

trädkarta
  • fungera: funktion som testar om varje element i en sekvens är sant eller inte.
  • sekvens: sekvens som behöver filtreras, det kan vara uppsättningar, listor, tupler eller behållare av alla iteratorer.

Returnerar: en iterator som redan är filtrerad.



Python-filter Funktionsexempel

Låt oss se några exempel på filter()-funktionen i Python.

Python-filterfunktion med en anpassad funktion

I det här exemplet använder vi filterfunktionen tillsammans med en anpassad funktion roligt() att filtrera bort vokaler från Python lista .

Pytonorm






# 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)>

>

namn på usa stad

>

Produktion:

The filtered letters are: e e>

Filterfunktion i Python med Lambda

Python filter()-funktionen används normalt med Lambdafunktioner . I det här exemplet använder vi lambda-funktionen för att filtrera bort udda och jämna nummer från en lista.

Python3




reguljära uttryck i java

# 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 och anpassad funktion

I det här programmet kommer vi att använda både en anpassad funktion is_multiple_of_3() samt en lambdafunktion. Filter()-funktionen används för att tillämpa den här funktionen på varje element i nummerlistan, och lambda-funktionen används för att iterera över varje element i listan innan villkoret tillämpas. På så sätt kan vi utföra ytterligare operationer på varje element innan vi tillämpar villkoret.

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)>

array av strängar i c-programmering

>

>

Produktion

[3, 6, 9]>

Tidskomplexitetsanalys

  1. Filterfunktionen används för att filtrera listan med nummer, och den tillämpar lambdafunktionen på varje element i listan. Filterfunktionens tidskomplexitet är O(n), där n är antalet element i listan.
  2. Tidskomplexiteten för lambdafunktionen är konstant, O(1), eftersom den bara utför en enda aritmetisk operation. Därför är den totala tidskomplexiteten för programmet O(n).

Auxiliary Space Analysis

Programmet använder en lista för att lagra de filtrerade siffrorna, så utrymmeskomplexiteten är proportionell mot antalet filtrerade siffror. I värsta fall, om alla tal är multiplar av 3, kommer den filtrerade listan att ha n/3 element. Därför är rymdkomplexiteten O(n/3), vilket förenklas till O(n) i stor O-notation.