U svijetu programiranja i manipulacije podacima, Python se ističe kao svestran i moćan jezik. Jedna od njegovih brojnih korisnih značajki jefilter()funkcija, koja može promijeniti igru kada je u pitanju obrada podataka. Kao dobavljač filtera, vidio sam kako je koncept filtriranja ključan ne samo u stvarnim proizvodima koje nudimo, poputCentralni filtar za pročišćavanje vodeiPredfilter, ali i u digitalnom carstvu programiranja.
Razumijevanje osnovafilter()Funkcija
Thefilter()funkcija u Pythonu je ugrađena funkcija koja vam omogućuje stvaranje novog iterabla (kao što je popis, tuple ili skup) filtriranjem elemenata iz postojećeg iterabla na temelju određenog uvjeta. Osnovna sintaksafilter()funkcija je sljedeća:
filter (funkcija, iterable)
Evo,funkcijaje objekt koji se može pozvati i koji uzima jedan argument i vraća booleovu vrijednost (Praviililažno). Theiterableje bilo koji Python objekt koji se može preći u petlju, kao što je lista, tuple ili niz.
Počnimo s jednostavnim primjerom. Pretpostavimo da imamo popis brojeva i želimo filtrirati sve parne brojeve.
brojevi = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Definirajte funkciju za provjeru je li broj neparan def is_odd(num): return num % 2 != 0 # Koristite funkciju filter() filtered_numbers = filter(is_odd, numbers) # Pretvorite rezultat u popis result = list(filtered_numbers) ispis (rezultat)
U ovom primjeru,je_neparanfunkcija se koristi kao uvjet filtriranja. Thefilter()funkcija ponavlja svaki element ubrojevimapopis, primjenjuje seje_neparanfunkcija na njega i zadržava samo elemente za koje funkcija vraćaPravi. Na kraju pretvaramo rezultatfilter()na popis i ispišite ga.
Korištenje Lambda funkcija safilter()
U mnogim je slučajevima uvjet filtriranja jednostavan i može se definirati pomoću lambda funkcije. Lambda funkcija je anonimna funkcija u Pythonu, što znači da joj nije potrebno ime. Može se definirati u jednom retku i često se koristi za kratkotrajne funkcije.
Prepišimo prethodni primjer pomoću lambda funkcije:
brojevi = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] filtrirani_brojevi = filter(lambda x: x % 2 != 0, brojevi) rezultat = lista(filtrirani_brojevi) ispis(rezultat)
Lambda funkcijalambda x: x % 2 != 0uzima jedan argumentxi vraća sePraviakoxje neparan ilažnoinače. To kod čini sažetijim, posebno za jednostavne uvjete filtriranja.
Filtriranje različitih vrsta iterablea
Thefilter()funkcija se može koristiti s različitim vrstama iterabla. Na primjer, razmotrimo torku nizova i filtriramo sve nizove koji imaju duljinu manju od 5.
riječi = ('jabuka', 'zabrana', 'trešnja', 'datum', 'stariji') filtered_words = filter(lambda riječ: len(riječ) >= 5, riječi) rezultat = tuple(filtrirane_riječi) print(rezultat)
U ovom slučaju koristimo lambda funkciju za provjeru duljine svakog niza u torki. Thefilter()funkcija zatim stvara novu torku samo sa nizovima koji ispunjavaju uvjet.
Filtriranje rječnika
Iako jefilter()je dizajnirana za rad s iterablima, možemo je koristiti i za filtriranje rječnika. Ipak, moramo biti malo kreativniji. Pretpostavimo da imamo rječnik u kojem su ključevi imena, a vrijednosti godine, i želimo filtrirati sve ljude koji su mlađi od 18 godina.
ljudi = {'Alice': 20, 'Bob': 15, 'Charlie': 22, 'David': 17} filtered_people = dict(filter(lambda item: item[1] >= 18, people.items())) print(filtered_people)
Ovdje koristimostavke()metoda rječnika za dobivanje iterable parova ključ-vrijednost. Lambda funkcija uzima svaki par ključ-vrijednost (predstavljen u obliku torke) i provjerava je li vrijednost (dob) veća ili jednaka 18. Na kraju, rezultat pretvaramo u rječnik.


Primjene u stvarnom svijetu i paralelno s fizičkim filtrima
U stvarnom svijetu, kao dobavljač filtera, razumijemo važnost filtriranja. TheCentralni filtar za pročišćavanje vodeje dizajniran za uklanjanje nečistoća iz vodoopskrbe, osiguravajući da je voda koju koristimo u našim domovima i industriji čista i sigurna. Slično tome,Predfilterkoristi se za hvatanje većih čestica prije glavnog procesa filtracije, štiteći osjetljivije i skuplje filtre nizvodno.
U programiranju,filter()funkcija igra sličnu ulogu. Pomaže nam očistiti i pročistiti naše podatke, uklanjajući neželjene elemente i ostavljajući samo podatke koji zadovoljavaju naše posebne kriterije. Na primjer, u projektu analize podataka možemo imati veliki skup podataka s mnogo zapisa, ali nas zanima samo podskup zapisa koji ispunjavaju određene uvjete. Thefilter()funkcija može brzo i učinkovito izdvojiti ovaj podskup, baš kao što fizički filtar uklanja nečistoće iz tekućine.
Optimiziranje korištenjafilter()
Prilikom korištenjafilter()funkcije, postoji nekoliko stvari koje treba imati na umu kako biste optimizirali njegovu izvedbu. Prvo, ako radite s velikom iterabom, razmislite o korištenju generatora umjesto da odmah pretvorite rezultat u popis. Thefilter()funkcija vraća iterator, tako da možete izravno prelaziti preko njega bez trošenja velike količine memorije odjednom.
veliki_brojevi = raspon (1000000) neparni_brojevi = filtar (lambda x: x % 2 != 0, veliki_brojevi) # Prelazak preko iteratora bez pretvaranja u popis za num u neparnim_brojevima: print(num)
Još jedan savjet za optimizaciju je korištenje najprikladnije funkcije filtriranja. Ako je uvjet filtriranja složen, možda bi bilo bolje definirati regularnu funkciju umjesto lambda funkcije radi bolje čitljivosti i lakoće održavanja.
Zaključak
Thefilter()funkcija u Pythonu moćan je i fleksibilan alat za manipulaciju podacima. Bilo da radite na maloj skripti ili velikom projektu analize podataka, može vam pomoći da učinkovito filtrirate neželjene podatke i usredotočite se na informacije koje su važne. Baš kao i naši fizički filteri, kao što jeCentralni filtar za pročišćavanje vodeiPredfilter, ključni su za osiguranje kvalitete vode,filter()ključna je za održavanje kvalitete vaših podataka.
Ako ste zainteresirani za naše visokokvalitetne proizvode za filtriranje ili imate pitanja o tome kako ih primijenitifilter()funkcije u vašim projektima programiranja, potičemo vas da posegnete za raspravom o nabavi. Naš tim stručnjaka spreman je pomoći Vam u pronalaženju najboljih rješenja za Vaše potrebe.
Reference
- Python službena dokumentacija o ugrađenim funkcijama
- "Python ubrzani tečaj" Erica Matthesa





