logo

filter() în python

Metoda filter() filtrează secvența dată cu ajutorul unei funcții care testează fiecare element din secvență să fie adevărat sau nu.

Sintaxă Python filter().

Metoda filter() în Piton are următoarea sintaxă:

Sintaxă: filtru (funcție, secvență)



Parametri:

np.linspace
  • funcţie: funcție care testează dacă fiecare element al unei secvențe este adevărat sau nu.
  • secvenţă: secvență care trebuie filtrată, poate fi seturi, liste, tupluri sau containere ale oricăror iteratoare.

Se intoarce: un iterator care este deja filtrat.

Exemple de funcții de filtru Python

Să vedem câteva exemple ale funcției filter() în Python.

Funcție de filtrare Python cu o funcție personalizată

În acest exemplu, folosim funcția de filtru împreună cu o funcție personalizată distracţie() pentru a filtra vocalele din Lista Python .

Piton




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

>

>

Ieșire:

The filtered letters are: e e>

Funcția de filtrare în Python cu Lambda

Funcția Python filter() este utilizată în mod normal cu Funcții lambda . În acest exemplu, folosim funcția lambda pentru a filtra numerele pare și impare dintr-o listă.

np.concatenate

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

>

>

Ieșire:

[1, 3, 5, 13] [0, 2, 8]>

Funcția de filtrare în Python cu Lambda și funcție personalizată

În acest program, vom folosi atât o funcție personalizată este_multiplu_din_3() precum și o funcție lambda. Funcția filter() este utilizată pentru a aplica această funcție fiecărui element al listei de numere, iar funcția lambda este folosită pentru a itera peste fiecare element al listei înainte de a aplica condiția. În acest fel, putem efectua operații suplimentare pe fiecare element înainte de a aplica condiția.

șir invers în java

Python3


subșir de tăiere javascript



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

>

>

Ieșire

[3, 6, 9]>

Analiza complexității timpului

  1. Funcția de filtrare este folosită pentru a filtra lista de numere și aplică funcția lambda fiecărui element al listei. Complexitatea de timp a funcției de filtru este O(n), unde n este numărul de elemente din listă.
  2. Complexitatea în timp a funcției lambda este constantă, O(1), deoarece efectuează doar o singură operație aritmetică. Prin urmare, complexitatea de timp globală a programului este O(n).

Analiza spatiului auxiliar

Programul folosește o listă pentru a stoca numerele filtrate, astfel încât complexitatea spațiului este proporțională cu numărul de numere filtrate. În cel mai rău caz, dacă toate numerele sunt multipli de 3, lista filtrată va avea n/3 elemente. Prin urmare, complexitatea spațiului este O(n/3), ceea ce se simplifică la O(n) în notația O mare.