✦ Srednji nivo Pythona i OOP Srednji nivo Pythona

L2 · Koncept 03 · Naprednije Python tehnike

Transformiši. Filtriraj.
Sortiraj.

Pretvorite sirove podatke u korisne rezultate menjajući vrednosti, zadržavajući ono što je važno i uređujući rezultat.

Cilj učenjaKoristite map(), filter() i sorted() sa jednostavnim lambda funkcijama, a zatim izaberite najjasniji pristup.
01 Uči02 Isprobaj03 Predvidi

Učenje kao gost

Učiš kao gost — sačuvaj svoj napredak!

Napravi besplatan nalog i uči uz Sloby AI mentora, proveru razumevanja i praćenje napretka.

Cela platforma je besplatna tokom 2026. Foundations ostaje zauvek besplatan.

Tri operacije, tri različita zadatka.

map() transformiše svaki element, filter() zadržava samo elemente koji ispunjavaju uslov, a sorted() pravi uređenu listu. U Pythonu 3, map i filter vraćaju iteratore, zato list() često čini njihove rezultate vidljivim.

prices = [100, 200, 300]
discounted = list(map(lambda price: price * 0.9, prices))
print(discounted)

map() poziva lambda funkciju za svaku cenu. list() sakuplja njen iterator u [90.0, 180.0, 270.0]; prices ostaje nepromenjen.

[90.0, 180.0, 270.0]

filter() zadržava originalne elemente čiji je uslov tačan. sorted() vraća novu listu, dok list.sort() menja listu na mestu i vraća None.

↳

Izaberite najjasniji oblik: Comprehension je često lakši za čitanje kod male transformacije ili filtriranja. map() i filter() su korisni kada već imate funkciju koju želite da prosledite.

Praktični primeri
scores = [45, 82, 67, 91, 38]
passed = list(filter(lambda score: score >= 60, scores))

products = [{"name": "Mouse", "price": 20}, {"name": "Keyboard", "price": 45}, {"name": "Monitor", "price": 180}]
ordered = sorted(products, key=lambda product: product["price"], reverse=True)

numbers = [1, 2, 3, 4, 5]
with_map = list(map(lambda n: n * 2, numbers))
with_comprehension = [n * 2 for n in numbers]

filter() vraća prolazne rezultate bez njihove promene. sorted() može da koristi reverse=True za opadajući redosled i stabilan je: jednaki ključevi zadržavaju prvobitni redosled.

Filtrirajte, zatim transformišite
available = filter(lambda product: product["price"] >= 50, products)
discounted = map(lambda product: product["price"] * 0.9, available)

filter odlučuje koji proizvodi nastavljaju dalje. map() zatim menja samo njihove cene.

Sortirajte novu listu
ordered = sorted(products, key=lambda product: product["price"])

sorted() ostavlja products nepromenjenim. Koristite .sort() samo kada namerno želite da promenite tu istu listu.

Pratite tok obrade podataka

  1. 1. Počnite od originalnih podatakaPočnite malom kolekcijom vrednosti ili rečnika.
  2. 2. filter() biraNjegova funkcija vraća True za elemente koji ostaju.
  3. 3. map() transformišeNjegova funkcija vraća novu vrednost za svaki preostali element.
  4. 4. sorted() uređujeVraća novu listu u rastućem redosledu, osim ako se koristi reverse=True.

Česte greške

  • Očekivanje da map() bude listaObavijte map() ili filter() funkcijom list() kada vam je potrebna lista za ispis ili ponovnu upotrebu.
  • Mešanje izbora i transformacijefilter() zadržava originalne elemente; map() pravi transformisane vrednosti.
  • Očekivanje da sorted() menja listusorted() vraća novu listu. list.sort() menja listu i vraća None.
  • Pravljenje jednog dugog lancaDajte imena međurezultatima kada ugnežđavanje map(), filter() i lambda funkcija čini kod teškim za čitanje.

Python radni prostor

Učitavanje Python okruženja…

Promenite prag cene ili stopu popusta, zatim posmatrajte koji proizvodi ostaju i kako se menjaju njihove sortirane snižene cene.

data_pipeline.pyPython
IzlazČeka se Python
Okruženje pregledača se učitava. I dalje možeš da menjaš primer koda.

Pyodide pokreće Python u Web Worker-u pregledača. Zaustavlja se i ponovo pokreće ako se kod predugo izvršava. Izvršavanje u pregledaču nije potpuna bezbednosna granica; ne unosi tajne i ne oslanjaj se na njega za izolaciju nepouzdanog koda.

Šta će ovaj program ispisati?

filter() najpre zadržava brojeve veće od 5. map() zatim udvostručuje samo te izabrane brojeve.

numbers = [2, 5, 8, 11]
selected = filter(lambda n: n > 5, numbers)
result = list(map(lambda n: n * 2, selected))
print(result)
Izaberi izlaz

Vežbajte samostalno

Mini izazov — Podaci internet prodavnice

Gradite tok obrade korak po korak: dostupni proizvodi, snižene cene, zatim sortirani rezultati.

Vaš ciljFiltrirajte proizvode na stanju, izračunajte popust od 10% pomoću map(), sortirajte cene i ispišite rezultat. Bonus: sačuvajte naziv svakog proizvoda u paru sa njegovom sniženom cenom.

online_shop_challenge.py

Opcioni nagoveštaji
  • Najpre koristite filter(): uslov treba da proverava product["stock"].
  • map() može da vrati sniženu cenu. Za bonus vratite rečnik ili tuple koji čuva naziv uz tu cenu.
Pitajte Slobyja za nagoveštaj
Sloby, maskota Python AI Tutora

Tvoj mentor za učenje

Prijavite se da pitate Slobyja

Napravite besplatan nalog ili se prijavite za AI smernice tokom učenja.

Prijavite se da proverite svoje razumevanje

Napravite besplatan nalog ili se prijavite da biste dobili AI povratnu informaciju i sačuvali napredak u učenju.

Python AI Tutor · Uči razumevanjem, a ne samo pokretanjem koda.