✦ Srednji nivo Pythona i OOP Srednji nivo Pythona

L2 · Koncept 02 · Naprednije Python tehnike

Male funkcije,
moćne ideje.

Lambda daje kratak funkcijski izraz kada vam je potrebna samo jedna mala i jasna operacija.

Cilj učenjaNapišite jednostavne lambda funkcije, koristite jednu kao sorted() key i izaberite def kada je imenovana funkcija jasnija.
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.

Lambda je kratka funkcija sa jednim izrazom.

Oblik lambda argumenti: izraz pravi funkcijski objekat bez def naredbe. Njegov jedan izraz automatski daje rezultat. Lambda je najkorisnija kada je funkcija kratka i prosleđuje se direktno drugoj funkciji.

def double(number):
    return number * 2

double_lambda = lambda number: number * 2

print(double(5))
print(double_lambda(5))

Oba poziva ispisuju 10. Dodela promenljivoj double_lambda služi samo za poređenje sintakse: za funkciju kojoj dajete ime i koristite je više puta, def je obično jasniji.

10 10

Telo lambda funkcije je jedan izraz, a ne niz proizvoljnih naredbi. Funkciju možete proslediti kao vrednost; zagrade kao u function_name() je pozivaju i daju njen rezultat.

↳

Birajte čitljivost: Koristite def kada logika ima više koraka, treba joj smislen naziv ili će se ponovo koristiti. Lambda treba da učini okolni kod lakšim za čitanje, a ne kraćim po svaku cenu.

Praktični primeri
add = lambda a, b: a + b
print(add(3, 4))

products = [
    {"name": "Keyboard", "price": 45},
    {"name": "Mouse", "price": 20},
    {"name": "Monitor", "price": 180},
]

sorted_products = sorted(products, key=lambda product: product["price"])
for product in sorted_products:
    print(product["name"], product["price"])

Prvi red pokazuje lambda funkciju sa dva argumenta. U drugom primeru key od lambda funkcije traži cenu svakog proizvoda. sorted() vraća novu listu i ne menja products.

Jedan argument — jedan rezultat
double = lambda number: number * 2
print(double(5))

Lambda prima number i vraća njegovu udvostručenu vrednost. Ovo je prikaz sintakse; imenovana funkcija koja se ponovo koristi obično se piše pomoću def.

Dva argumenta — jedan izraz
add = lambda a, b: a + b
print(add(3, 4))

Argumenti stoje pre dvotačke. Izraz posle dvotačke je vraćeni rezultat.

Prosledite lambda funkciju u sorted()
sorted_products = sorted(products, key=lambda product: product["price"])

sorted() poziva lambda funkciju za svaki proizvod i poredi cene koje dobije. Originalna lista products zadržava svoj redosled.

Koristite def kada zadatak postane složeniji
def discounted_price(product):
    price = product["price"]
    return price * 0.9

Ovde postoji imenovana međuvrednost i više od jednog koraka, zato def jasnije prenosi nameru od složene lambda funkcije.

Čitajte sorted() i lambda izraz od spolja ka unutra

  1. 1. Počnite od sorted()sorted(products, ...) prima originalnu listu i vraća novu sortiranu listu.
  2. 2. Uočite keykey= prima funkciju, a ne rezultat njenog poziva. Govori funkciji sorted() koju vrednost treba koristiti za poređenje.
  3. 3. Pratite productZa svaki rečnik u products, product se privremeno odnosi na taj jedan rečnik.
  4. 4. Pročitajte rezultat lambda izrazalambda product: product["price"] vraća jednu cenu za svaki proizvod.
  5. 5. Pogledajte konačni redosledsorted() poredi te cene i pravi novu listu od najniže do najviše, osim ako se koristi reverse=True.

Česte greške

  • Više naredbi u lambda funkcijiLambda sadrži jedan izraz. Koristite def kada su vam potrebne dodele vrednosti, više koraka ili jasniji tok upravljanja.
  • Pozivanje funkcije umesto njenog prosleđivanjaNapišite key=lambda product: ..., a ne vrednost nastalu pre nego što sorted() može da pregleda svaki proizvod.
  • Biranje pogrešnog key argumentaVratite product["price"] za sortiranje po ceni. Vraćanje product["name"] umesto toga sortira abecedno.
  • Očekivanje da sorted() promeni originalnu listusorted() pravi novu listu. Sačuvajte njen rezultat ako želite da koristite novi redosled.
  • Skrivanje složene logike u lambda funkcijiAko je izraz teško čitati, radije tom poslu dajte smislen naziv pomoću def.

Python radni prostor

Učitavanje Python okruženja…

Pokrenite primer, zatim sortirajte po <code>"name"</code>, dodajte <code>reverse=True</code> i uporedite novu listu sa neizmenjenom originalnom listom.

lambda_functions.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?

Lambda vraća negativnu vrednost svakog broja. Koji originalni broj ima najmanju key vrednost?

numbers = [3, 1, 4, 2]
result = sorted(numbers, key=lambda number: -number)
print(result)
Izaberi izlaz

Vežbajte samostalno

Mini izazov — Sortiranje proizvoda

Pre pisanja lambda funkcije odlučite koju jednu vrednost svaki proizvod treba da vrati za željeni redosled.

Vaš ciljIspišite nazive proizvoda sortirane po ceni od najniže do najviše, zatim od najviše do najniže. Bonus: ispišite ih abecedno po nazivu.

product_sorting_challenge.py

Opcioni nagoveštaji
  • Odlučite da li svaki proizvod za poređenje treba da da svoju "price" ili "name" vrednost.
  • Počnite sa key=lambda product: product["price"]. Dodajte reverse=True kada vam je potreban redosled od najveće ka najmanjoj vrednosti.
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.