logo

Python filter() funksjon

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.