Python

Kuinka käyttää Lambda-toimintoja Pythonissa

Kuinka käyttää Lambda-toimintoja Pythonissa
Tässä artikkelissa kerrotaan, kuinka Lambda-toimintoja käytetään Pythonissa. Lambda-toiminnoilla voidaan kirjoittaa ytimekkäitä yksirivisiä, toteuttaa logiikkaa ja saada nopeasti palautusarvoja, jotka voidaan syöttää muihin lausekkeisiin.

Tietoja Lambda-toiminnoista

Pythonin lambda-funktiot ovat nimettömiä ja nimettömiä toimintoja, joiden avulla voidaan luoda lausekkeita, jotka palauttavat jonkinlaisen arvon lausekkeessa itsessään toteutettujen laskelmien perusteella. Näiden lambda-toimintojen logiikka voidaan kirjoittaa suppeasti, yleensä jotain, joka sopii helposti yhdelle riville. Joskus niitä voi olla vaikea lukea, varsinkin jos ihmiset eivät ole perehtyneet Lambda-toimintoihin. Niillä on kuitenkin etuna pitää asiat yhdessä koodilohkoissa ja ne auttavat paremmin ymmärtämään asiayhteyttä.

Lambda-toimintojen syntaksi

Lambda-toiminnon syntaksi Pythonissa Näyttää tältä:

kerro = lambda x, y: x * y

Lambda-lausekkeen ensimmäinen osa, juuri ennen kaksoispiste (:) -symbolia, ottaa parametrit argumenteiksi. Paksusuolisymbolin jälkeen toisen osan on oltava palautusarvo. Tämä palautusarvo voi olla myös logiikkalauseke. Itse asiassa Lambda-toimintoja käytetään melkein koko ajan jonkin logiikan toteuttamiseksi toimitetuissa argumenteissa ja palautetaan sitten lopputulos.

Voit testata yllä mainittua Lambda-toimintoa käyttämällä seuraavaa lausetta:

tulosta (kerro (3, 4))

Sinun pitäisi saada seuraava tulos:

12

Sama lambda-funktio kirjoitettaisiin muuten seuraavasti:

def kerro (x, y):
palaa x * y
tulosta (kerro (3, 4))

Molemmat koodinäytteet antavat saman tuloksen. Joitakin muita esimerkkejä Lambda-toiminnoista selitetään alla.

Pass Lambda -toiminnot argumentteina

Voit käyttää Lambda-toimintoja laskelmien tekemiseen ja palautusarvon toimittamiseen argumentteina muille funktioille. Lajittelutapa Pythonissa vie "avain" -argumentin, jossa voit määrittää kutsuvan funktion, joka vie yhden argumentin lajittelua varten. Sen sijaan, että määrität ensin erillisen funktion, joka palauttaa avaimen ja toimittaa sitten funktion viitteen argumenttiin, voit yksinkertaisesti käyttää Lambda-funktiota.

hedelmät = [(2, 'omenat'), (4, 'appelsiinit'), (3, 'banaanit')]
hedelmiä.lajittelu (avain = lambda-elementti: elementti [0])
tulosta (hedelmät)

Yllä oleva koodi tuottaa seuraavan tuloksen:

[(2, 'omenat'), (3, 'banaanit'), (4, 'appelsiinit')]

Voit käyttää lambdaa missä tahansa sellaisessa menetelmässä, joka käyttää kutsuttavan funktion argumenttina (esimerkiksi suodatustapa).

Käytä Lambda-toimintoja luettelonäkymissä

Voit käyttää Lambdaa luettelon ymmärtämisessä, ja luettelo luodaan asianmukaisesti Lambda-lausekkeen palauttamista arvoista.

get_square = lambda a: a * a
neliöt = [get_square (x) x alueella (5)]
tulosta (neliöt)

Tämä tuottaa seuraavan tuotoksen:

[0, 1, 4, 9, 16]

Yllä oleva koodinäyte voidaan kirjoittaa myös seuraavalla tavalla, jossa "x" syötetään lambda-funktioon argumenttina:

neliöt = [(lambda x: x * x) (x) x: lle alueella (5)]
tulosta (neliöt)

Tämä esimerkki kuvaa vain Lambda-toimintojen käyttöä luettelon ymmärtämisessä. Voit muuten helposti laskea neliöt käyttämällä minimaalista luettelon ymmärtämistä koskevaa lausetta:

tulosta ([x * x x alueella x (5)])

Käytä Lambda-toimintoja Python-sanakirjoissa

Alla oleva koodinäyte kuvaa Lambda-toimintoja, joita käytetään avainarvopareissa Python-sanakirjassa. Kun olet määrittänyt, voit soittaa näihin toimintoihin milloin tahansa.

laske = 'summa': lambda a, b: a + b, 'ero': lambda a, b: a - b
tulosta (laske ['summa'] (4, 5))
tulosta (laske ['ero'] (4, 5))

Sinun pitäisi saada seuraava lähtö suoritettuasi yllä olevan koodin:

9
-1

Johtopäätös

Lambda-toiminnot tarjoavat erinomaisen tavan kirjoittaa lyhytlausekkeita ja pitää asiat siistinä ja järjestettyinä tarpeettomasti luomalla paljon nimettyjä toimintoja. Lambda-toimintojen liiallinen käyttö voi kuitenkin vaikeuttaa koodin lukemista, varsinkin kun koodia tarkastelee useampi kuin yksi henkilö. On parempi, että sinulla on luettavampi koodi (vaikka se onkin sanallinen) kuin jos sinulla on jotain, joka voi olla hieman vaikea ymmärtää uudelleenkäynnit.

Parhaat pelit, joita voi seurata käsien seurannalla
Oculus Quest esitteli äskettäin loistavan ajatuksen seurannasta ilman ohjaimia. Yhä kasvavan määrän pelejä ja aktiviteetteja, jotka tukevat tukea joko...
Kuinka näyttää OSD-peitto koko näytön Linux-sovelluksissa ja peleissä
Koko näytön pelien pelaaminen tai sovellusten käyttäminen häiriöttömässä koko näytön tilassa voi estää sinut paneelissa tai tehtäväpalkissa näkyvistä ...
Viisi parasta pelin kaappauskorttia
Olemme kaikki nähneet ja rakastaneet suoratoistopelejä YouTubessa. PewDiePie, Jakesepticye ja Markiplier ovat vain joitain huippupelaajista, jotka ova...