Pythons indbyggede filter() funktion er også en kraftfuld; til udførelse af datafiltreringsprocedure på sekvenser som lister, tupler og strenge. Filter()-funktionen bruges til at anvende en funktion til hvert element i en iterabel (som en liste eller tuple) og returnere en anden iterabel, der kun indeholder de elementer, som funktionen bringer True tilbage for. Langs disse linjer tillader filter() os at bortfiltrere elementer fra en gruppering baseret på en eller anden betingelse. Det første argument kan være Ingen, hvis funktionen ikke er tilgængelig og kun returnerer elementer, der er Sande.
Syntaks:
filter (function, iterable)
Parametre
fungere: Det er en funktion. Hvis indstillet til Ingen returnerer kun elementer, der er Sande.
Iterable: Enhver iterabel sekvens som liste, tuple og streng.
Begge parametre er påkrævet.
Vend tilbage
Det returnerer det samme som returneret af funktionen.
Lad os se nogle eksempler på filter()-funktionen for at forstå dens funktionalitet.
Python filter() Funktionseksempel 1
Dette simple eksempel returnerer værdier højere end 5 ved hjælp af filterfunktionen. Se nedenstående eksempel.
Kode
# 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 definerer en funktion kaldet filterdata, der tager et enkelt argument x. I denne funktion kontrollerer vi, hvis vi antager, at x er større end 5, og forudsat at dette er sandt, udskriver vi x. Derefter kalder vi filter()-funktionen og sender filterdata ind som hovedargumentet og en tupel (1, 2, 6) som det efterfølgende argument. Filter()-funktionen anvender filterdata()-funktionen på hvert element i tuplen og returnerer en iterator, der kun indeholder de elementer, der opfylder betingelsen x > 5. Til sidst konverterer vi iteratoren til en liste ved hjælp af list()-funktionen og udskriv resultatet.
hvor meget vejer kat timpf
Følgende er et par yderligere eksempler på, hvordan man bruger filter()-metoden i Python:
Eksempel 2:
Filtrer tomme strenge fra en liste:
Kode
mission umulig alle film
# 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 dette eksempel kontrollerer lambda-funktionen i tilfælde af, at hver streng ikke er tom ved at teste, idet den antager, at den svarer til den tomme streng (''). Filter()-funktionen returnerer en anden iterabel, der kun indeholder de ikke-tomme strenge.
Eksempel 3:
Filtrer negative tal fra en liste:
Kode
# 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:
[1, 3, 5]
I dette eksempel kontrollerer lambdafunktionen, idet det antages, at hvert tal er ikke-negativt ved at teste i tilfælde af, at det er mere fremtrædende end eller svarer til nul (0). Filter()-funktionen returnerer en anden iterabel, der kun indeholder de ikke-negative tal.
Eksempel 4:
Filtrer dubletter fra en liste:
Kode
# 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 dette eksempel kontrollerer lambda-funktionen i tilfælde af, at hvert tal kun dukker op en enkelt gang i tallisten ved at tælle, hvor ofte det dukker op (numbers.count(x)) og teste i tilfælde af, at antallet svarer til 1. Filter()-funktionen returnerer en anden iterabel, der kun indeholder de unikke tal.
Bemærk: Det er væsentligt, at i Python 3 returnerer filter()-funktionen en iterabel, og det betyder, at du virkelig vil ændre den fuldstændigt til en liste (som vist i eksemplerne ovenfor) for at involvere den som en liste. Ikke desto mindre returnerer filter()-funktionen i Python 2 selvfølgelig en liste.
Konklusion:
Endelig er filter()-funktionen et kraftfuldt værktøj til datamanipulation i Python. Ved at filtrere en iterabel baseret på en foruddefineret betingelse kan du hurtigt og effektivt adskille de data, du virkelig ønsker. Du kan ligeledes bruge filter() i blanding med andre Python-funktioner til at udføre mere forvirrende datamanipulationer.