Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Lambda-funktiot | Korkeamman asteen funktiot ja lambdat
Funktionaalisen Ohjelmoinnin Käsitteet Pythonissa

bookLambda-funktiot

Pyyhkäise näyttääksesi valikon

Lambda-funktiot ovat Pythonin keskeinen ominaisuus, jonka avulla voidaan luoda pieniä, anonyymejä funktioita tiiviillä syntaksilla. Lambda-funktion päätarkoitus on määritellä funktio yhdellä rivillä, tyypillisesti lyhyitä, kertaluonteisia käyttötapauksia varten, joissa täysi funktion määrittely def-avainsanalla olisi tarpeettoman monimutkaista.

Lambda-funktioita käytetään useimmiten yhdessä korkeamman asteen funktioiden, kuten map, filter ja sorted, kanssa, kun funktio täytyy välittää argumenttina mutta erillisen funktion määrittely koodin muualle ei ole tarpeen.

Lambda-funktio voi ottaa minkä tahansa määrän argumentteja, mutta siinä saa olla vain yksi lauseke. Tämän lausekkeen tulos palautetaan automaattisesti. Vaikka lambda-funktiot ovat hyödyllisiä nopeiden, kertakäyttöisten funktioiden luomiseen, niillä on rajoituksia: ne eivät voi sisältää useita lauseita, sijoituksia tai monimutkaista logiikkaa, ja niiden liiallinen käyttö heikentää luettavuutta. Näistä rajoituksista johtuen lambda-funktioita kannattaa käyttää yksinkertaisiin tehtäviin ja suosia tavallisia funktioita monimutkaisemmissa operaatioissa.

123
numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x ** 2, numbers)) print(squared)
copy

Yllä oleva koodi käyttää lambda-funktiota yhdessä map-korkeamman asteen funktion kanssa korottaakseen jokaisen luvun listassa numbers toiseen potenssiin. lambda x: x ** 2 määrittelee anonyymin funktion, joka ottaa yhden argumentin x ja palauttaa sen neliön. Tämä lähestymistapa mahdollistaa yksinkertaisen operaation nopean soveltamisen jokaiselle listan alkiolle ilman erillisen nimettyn funktion määrittelyä, tehden koodista tiiviimpää ja selkeämpää silloin, kun funktiota tarvitaan vain kerran.

123
numbers = [1, 2, 3, 4, 5, 6] evens = list(filter(lambda x: x % 2 == 0, numbers)) print(evens)
copy

Tässä esimerkissä käytetään lambda-funktiota yhdessä filter-funktion kanssa poimimaan vain parilliset luvut numbers-listasta. Lambda-funktion käyttö tekee suodatuslogiikasta ytimekkään ja helposti luettavan, erityisesti silloin kun tarvitset vain yksinkertaisen tarkistuksen ilman erillisen nimettyn funktion luomista.

1. Mikä on tärkein ero lambda-funktion ja tavallisen funktion välillä?

2. Milloin kannattaa käyttää lambda-funktiota def:n sijaan?

question mark

Mikä on tärkein ero lambda-funktion ja tavallisen funktion välillä?

Valitse oikea vastaus

question mark

Milloin kannattaa käyttää lambda-funktiota def:n sijaan?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 5
some-alt