logo

Funcția Python filter().

Funcția filter() încorporată din Python este și ea puternică; pentru efectuarea procedurii de filtrare a datelor pe secvențe precum liste, tupluri și șiruri. Funcția filter() este utilizată pentru a aplica o funcție fiecărui element al unui iterabil (cum ar fi o listă sau un tuplu) și pentru a returna un alt iterabil care conține doar elementele pentru care funcția aduce True înapoi. De-a lungul acestor linii, filter() ne permite să filtram elemente dintr-o grupare bazată pe o anumită condiție. Primul argument poate fi None dacă funcția nu este disponibilă și returnează numai elemente care sunt adevărate.

Sintaxă:

 filter (function, iterable) 

Parametrii

funcţie: Este o funcție. Dacă este setată la Niciunul, returnează numai elementele care sunt adevărate.

Iterabil: Orice secvență iterabilă, cum ar fi listă, tuplu și șir.

Ambii parametri sunt necesari.

Întoarcere

Returnează același lucru cu cel returnat de funcție.

Să vedem câteva exemple de funcție filter() pentru a înțelege funcționalitatea acesteia.

Funcția Python filter() Exemplul 1

Acest exemplu simplu returnează valori mai mari de 5 folosind funcția de filtru. Vezi exemplul de mai jos.

Cod

 # Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result)) 

Ieșire:

[6] 

Codul definește o funcție numită filterdata care ia un singur argument x. În această funcție, verificăm presupunând că x este mai mare decât 5 și, cu condiția ca acest lucru să fie adevărat, imprimăm x. Apoi, apelăm funcția filter(), trecând în filterdata ca argument principal și un tuplu (1, 2, 6) ca argument ulterior. Funcția filter() aplică funcția filterdata() fiecărui element al tuplului și returnează un iterator care conține doar elementele care îndeplinesc condiția x > 5. În cele din urmă, convertim iteratorul într-o listă utilizând funcția list() și tipăriți rezultatul.

Următoarele sunt câteva exemple suplimentare despre cum să utilizați metoda filter() în Python:

Exemplul 2:

Filtrați șirurile goale dintr-o listă:

Cod

 # Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result) 

Ieșire:

 [ 'hello', 'world' ] 

În acest exemplu, funcția lambda verifică în cazul în care fiecare șir nu este gol prin testare presupunând că este echivalent cu șirul gol (''). Funcția filter() returnează un alt iterabil care conține doar șirurile negoale.

Exemplul 3:

Filtrați numerele negative dintr-o listă:

Cod

 # Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result) 

Ieșire:

 [1, 3, 5] 

În acest exemplu, funcția lambda verifică presupunând că fiecare număr este nenegativ prin testare în cazul în care este mai proeminent decât sau echivalent cu zero (0). Funcția filter() returnează un alt iterabil care conține doar numerele nenegative.

Exemplul 4:

Filtrați duplicatele dintr-o listă:

Cod

 # Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result) 

Ieșire:

 [ 1, 4, 5 ] 

În acest exemplu, funcția lambda verifică în cazul în care fiecare număr apare o singură dată în lista de numere, numărând cât de des apare (numbers.count(x)) și testând în cazul în care numărul este echivalent cu 1. Funcția filter() returnează un alt iterabil care conține doar numerele unice.

prime fără cod în java

Notă: Este semnificativ faptul că în Python 3, funcția filter() returnează un iterabil și asta implică că doriți cu adevărat să o schimbați complet într-o listă (așa cum este afișată în exemplele de mai sus) pentru a o implica ca o listă. Cu toate acestea, în Python 2, funcția filter() returnează, desigur, o listă.

Concluzie:

În cele din urmă, funcția filter() este un instrument puternic pentru manipularea datelor în Python. Prin filtrarea unui iterabil pe baza unei condiții predefinite, puteți separa rapid și eficient datele pe care le doriți cu adevărat. De asemenea, puteți utiliza filter() în combinație cu alte funcții Python pentru a efectua manipulări de date mai perplexe.