Pythons inbyggda filter()-funktion är också en kraftfull; för att utföra datafiltreringsprocedurer på sekvenser som listor, tupler och strängar. Filter()-funktionen används för att tillämpa en funktion på varje element i en iterabel (som en lista eller tupel) och returnera en annan iterabel som bara innehåller de element för vilka funktionen återför True. Längs dessa linjer tillåter filter() oss att filtrera bort element från en gruppering baserat på något villkor. Det första argumentet kan vara None om funktionen inte är tillgänglig och endast returnerar element som är True.
Syntax:
filter (function, iterable)
Parametrar
fungera: Det är en funktion. Om satt till Ingen returnerar endast element som är Sanna.
Iterable: Vilken itererbar sekvens som helst som lista, tupel och sträng.
Båda parametrarna krävs.
vad är f5 på tangentbordet
Lämna tillbaka
Den returnerar samma som returneras av funktionen.
Låt oss se några exempel på filter()-funktionen för att förstå dess funktionalitet.
Python filter() Funktionsexempel 1
Detta enkla exempel returnerar värden högre än 5 med hjälp av filterfunktionen. Se exemplet nedan.
hur man konverterar heltal till sträng java
Koda
# 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))
Produktion:
[6]
Koden definierar en funktion som kallas filterdata som tar ett enda argument x. I den här funktionen kontrollerar vi förutsatt att x är större än 5, och förutsatt att detta är sant skriver vi ut x. Sedan anropar vi filter()-funktionen och skickar in filterdata som huvudargument och en tupel (1, 2, 6) som det efterföljande argumentet. Filter()-funktionen tillämpar filterdata()-funktionen på varje element i tuplen och returnerar en iterator som bara innehåller de element som uppfyller villkoret x > 5. Äntligen konverterar vi iteratorn till en lista med funktionen list() och skriv ut resultatet.
Följande är ett par ytterligare exempel på hur man använder filter()-metoden i Python:
Exempel 2:
Filtrera bort tomma strängar från en lista:
Koda
# 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)
Produktion:
[ 'hello', 'world' ]
I det här exemplet kontrollerar lambdafunktionen i händelse av att varje sträng inte är tom genom att testa förutsatt att den motsvarar den tomma strängen (''). Filter()-funktionen returnerar en annan iterabel som bara innehåller de icke-tomma strängarna.
Exempel 3:
Filtrera bort negativa tal från en lista:
Koda
# 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)
Produktion:
vad betyder xdxd
[1, 3, 5]
I det här exemplet kontrollerar lambdafunktionen och antar att varje nummer är icke-negativt genom att testa i händelse av att det är mer framträdande än eller ekvivalent med noll (0). Filter()-funktionen returnerar en annan iterabel som bara innehåller de icke-negativa talen.
Exempel 4:
Filtrera bort dubbletter från en lista:
Koda
sista nyckelordet i java
# 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)
Produktion:
[ 1, 4, 5 ]
I det här exemplet kontrollerar lambdafunktionen i händelse av att varje nummer bara dyker upp en gång i nummerlistan genom att räkna hur ofta det dyker upp (numbers.count(x)) och testa i händelse av att antalet motsvarar 1. Filter()-funktionen returnerar en annan iterabel som bara innehåller de unika talen.
Obs: Det är viktigt att i Python 3 returnerar filter()-funktionen en iterabel, och det antyder att du verkligen vill ändra den helt till en lista (som visas i exemplen ovan) för att involvera den som en lista. Icke desto mindre, i Python 2, returnerar filter()-funktionen naturligtvis en lista.
Slutsats:
Slutligen är filter()-funktionen ett kraftfullt verktyg för datamanipulation i Python. Genom att filtrera en iterabel baserat på ett fördefinierat villkor kan du snabbt och effektivt separera data som du verkligen vill ha. Du kan också använda filter() i kombination med andra Python-funktioner för att utföra mer förvirrande datamanipulationer.