logo

Python filter() funkcija

Pythonova ugrađena funkcija filter() također je moćna; za izvođenje postupka filtriranja podataka na nizovima kao što su popisi, torke i nizovi. Funkcija filter() koristi se za primjenu funkcije na svaki element iterabla (poput popisa ili torke) i vraćanje drugog iterabla koji sadrži samo elemente za koje funkcija vraća True. U tom smislu, filter() nam dopušta filtriranje elemenata iz grupiranja na temelju nekog uvjeta. Prvi argument može biti None ako funkcija nije dostupna i vraća samo elemente koji su True.

Sintaksa:

 filter (function, iterable) 

Parametri

funkcija: To je funkcija. Ako je postavljeno na None, vraća samo elemente koji su True.

Iterable: Bilo koji niz koji se može ponavljati kao što je popis, tuple i niz.

Oba parametra su obavezna.

Povratak

Vraća isto što i funkcija.

Pogledajmo neke primjere funkcije filter() da bismo razumjeli njezinu funkcionalnost.

Primjer 1. funkcije Python filter().

Ovaj jednostavan primjer vraća vrijednosti veće od 5 pomoću funkcije filtra. Pogledajte donji primjer.

Kodirati

 # 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)) 

Izlaz:

[6] 

Kod definira funkciju pod nazivom filterdata koja uzima jedan argument x. U ovoj funkciji provjeravamo pod pretpostavkom da je x veći od 5, i pod uvjetom da je to točno, ispisujemo x. Zatim pozivamo funkciju filter(), prosljeđujući filterdata kao glavni argument i torku (1, 2, 6) kao sljedeći argument. Funkcija filter() primjenjuje funkciju filterdata() na svaki element torke i vraća iterator koji sadrži samo elemente koji ispunjavaju uvjet x > 5. Na kraju pretvaramo iterator u popis pomoću funkcije list(). i ispisati rezultat.

Slijedi nekoliko dodatnih primjera kako koristiti metodu filter() u Pythonu:

Primjer 2:

Filtrirajte prazne nizove s popisa:

Kodirati

 # 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) 

Izlaz:

 [ 'hello', 'world' ] 

U ovom primjeru, lambda funkcija provjerava u slučaju da svaki niz nije prazan testiranjem pod pretpostavkom da je ekvivalentan praznom nizu (''). Funkcija filter() vraća još jedan iterable koji sadrži samo neprazne nizove.

Primjer 3:

Filtrirajte negativne brojeve s popisa:

Kodirati

 # 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) 

Izlaz:

 [1, 3, 5] 

U ovom primjeru, lambda funkcija provjerava pod pretpostavkom da svaki broj nije negativan testiranjem u slučaju da je istaknutiji od nule (0) ili jednak njoj. Funkcija filter() vraća još jedan iterable koji sadrži samo nenegativne brojeve.

Primjer 4:

Filtrirajte duplikate s popisa:

Kodirati

 # 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) 

Izlaz:

 [ 1, 4, 5 ] 

U ovom primjeru, lambda funkcija provjerava u slučaju da se svaki broj pojavi samo jednom na popisu brojeva brojanjem koliko se često pojavljuje (numbers.count(x)) i testiranjem u slučaju da je broj ekvivalentan 1. Funkcija filter() vraća još jedan iterable koji sadrži samo jedinstvene brojeve.

Napomena: značajno je da u Pythonu 3 funkcija filter() vraća iterable, a to implicira da ga stvarno želite potpuno promijeniti u popis (kao što je prikazano u gornjim primjerima) da biste ga uključili kao popis. Bez obzira na to, u Pythonu 2 funkcija filter() naravno vraća popis.

Zaključak:

Konačno, funkcija filter() moćan je alat za manipulaciju podacima u Pythonu. Filtriranjem iterable na temelju unaprijed definiranog uvjeta, možete brzo i učinkovito odvojiti podatke koje stvarno želite. Možete također koristiti filter() u kombinaciji s drugim Python funkcijama za izvođenje zbunjujućih manipulacija podacima.