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
- 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ă.
- 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.