Pythons innebygde filter()-funksjon er også en kraftig; for å utføre datafiltreringsprosedyre på sekvenser som lister, tupler og strenger. Filter()-funksjonen brukes til å bruke en funksjon på hvert element i en iterabel (som en liste eller tuppel) og returnere en annen iterabel som inneholder bare elementene som funksjonen bringer True tilbake for. Langs disse linjene tillater filter() oss å filtrere ut elementer fra en gruppering basert på en betingelse. Det første argumentet kan være Ingen hvis funksjonen ikke er tilgjengelig og returnerer bare elementer som er sanne.
Syntaks:
filter (function, iterable)
Parametere
funksjon: Det er en funksjon. Hvis satt til Ingen returnerer bare elementer som er sanne.
Iterable: Enhver gjentakelig sekvens som liste, tuppel og streng.
Begge parametrene er nødvendige.
Komme tilbake
Den returnerer det samme som returneres av funksjonen.
La oss se noen eksempler på filter()-funksjonen for å forstå dens funksjonalitet.
Python filter() Funksjonseksempel 1
Dette enkle eksemplet returnerer verdier høyere enn 5 ved bruk av filterfunksjon. Se eksemplet nedenfor.
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))
Produksjon:
[6]
Koden definerer en funksjon kalt filterdata som tar et enkelt argument x. I denne funksjonen sjekker vi forutsatt at x er større enn 5, og forutsatt at dette stemmer, skriver vi ut x. Deretter kaller vi filter()-funksjonen, og sender inn filterdata som hovedargument og en tuppel (1, 2, 6) som det påfølgende argumentet. Filter()-funksjonen bruker filterdata()-funksjonen på hvert element i tuppelen og returnerer en iterator som inneholder bare elementene som oppfyller betingelsen x > 5. Til slutt konverterer vi iteratoren til en liste ved å bruke list()-funksjonen og skriv ut resultatet.
gimp-fontliste
Følgende er et par ekstra eksempler på hvordan du bruker filter()-metoden i Python:
Eksempel 2:
Filtrer ut tomme strenger fra en liste:
Kode
streng til json-objekt
# 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)
Produksjon:
[ 'hello', 'world' ]
I dette eksemplet sjekker lambda-funksjonen i tilfelle at hver streng ikke er tom ved å teste forutsatt at den tilsvarer den tomme strengen (''). Filter()-funksjonen returnerer en annen iterabel som bare inneholder de ikke-tomme strengene.
Eksempel 3:
Filtrer ut negative tall 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)
Produksjon:
[1, 3, 5]
I dette eksemplet kontrollerer lambdafunksjonen forutsatt at hvert tall er ikke-negativt ved å teste i tilfelle det er mer fremtredende enn eller ekvivalent med null (0). Filter()-funksjonen returnerer en annen iterabel som bare inneholder de ikke-negative tallene.
Eksempel 4:
Filtrer ut duplikater 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)
Produksjon:
[ 1, 4, 5 ]
I dette eksemplet sjekker lambda-funksjonen i tilfelle at hvert tall bare vises én gang i talllisten ved å telle hvor ofte det dukker opp (numbers.count(x)) og teste i tilfelle at tellingen tilsvarer 1. Filter()-funksjonen returnerer en annen iterabel som bare inneholder de unike tallene.
Merk: Det er viktig at i Python 3 returnerer filter()-funksjonen en iterabel, og det innebærer at du virkelig ønsker å endre den fullstendig til en liste (som vist i eksemplene ovenfor) for å involvere den som en liste. Ikke desto mindre, i Python 2, returnerer filter()-funksjonen selvfølgelig en liste.
Konklusjon:
Til slutt er filter()-funksjonen et kraftig verktøy for datamanipulering i Python. Ved å filtrere en iterabel basert på en forhåndsdefinert tilstand, kan du raskt og effektivt skille dataene du virkelig ønsker. Du kan på samme måte bruke filter() i blanding med andre Python-funksjoner for å utføre mer forvirrende datamanipulasjoner.