Mitä ovat lambda-toiminnot ja miten niitä käytetään?



Opi Python-lambda-toiminnot sekä ero normaalitoimintojen ja lambda-toimintojen välillä ja miten niitä voidaan käyttää suodattimissa (), kartoissa (), vähennä ().

Nimi on käytäntö, jota käytetään viittaamaan mihin tahansa entiteettiin tai osoittamaan sitä. Lähes kaikella ympärillämme on nimi. Myös ohjelmointimaailma kulkee tämän mukaisesti. Mutta onko pakko mainita kaikki? Vai voitko saada jotain, joka on vain 'nimetöntä'? Vastaus on kyllä. ' tarjoaa Lambda-toiminnot, jotka tunnetaan myös nimellä nimettömät toiminnot, jotka ovat itse asiassa nimettömiä. Joten siirrytään eteenpäin oppimaan näistä Pythonin 'nimettömistä mysteereistä' seuraavassa järjestyksessä.

Joten aloitetaan :)





Miksi käyttää Python Lambda -toimintoja?


Anonyymien toimintojen päätarkoitus tulee kuvaan, kun tarvitset toimintoa vain kerran. Ne voidaan luoda missä tahansa niitä tarvitaan. Tästä syystä Python Lambda -toiminnot tunnetaan myös heittotoimintoina, joita käytetään muiden ennalta määritettyjen toimintojen, kuten suodatin (), kartta (), jne. Kanssa. Nämä toiminnot auttavat vähentämään koodisi rivien määrää verrattuna normaalia .

Todistakoon tämä siirtymällä eteenpäin ja oppimalla Python Lambda -toiminnoista.



Mitä ovat Python Lambda -toiminnot?


Python Lambda -funktiot ovat toimintoja, joilla ei ole nimeä. Niitä kutsutaan myös nimettömiksi tai nimettömiksi toiminnoiksi. Sana ”lambda” ei ole nimi, vaan sen avainsana. Tämä avainsana määrittää, että seuraava funktio on nimettömänä.

Nyt kun olet tietoinen mistä nämä anonyymit toiminnot viittaavat, siirry eteenpäin nähdäksesi kuinka kirjoitat nämä Python Lambda -funktiot.

Kuinka kirjoittaa Lambda-toiminnot Pythoniin?

Lambda-toiminto luodaan lambda-operaattorilla ja sen syntakse on seuraava:



SYNTAKSI:

lambda-argumentit: lauseke

Python lambda-toiminto voi olla mikä tahansa määrä argumentteja, mutta se vie vain yksi ilmaisu. Syötteet tai argumentit voivat alkaa nollasta ja ylittää minkä tahansa rajan. Aivan kuten kaikki muutkin toiminnot, on aivan hienoa, että lambda-toiminnot ovat ilman tuloja. Siksi sinulla voi olla lambda-toimintoja missä tahansa seuraavista muodoista:

ESIMERKKI:

lambda: 'Määritä tarkoitus'

Tässä lambda-funktio ei ota mitään argumentteja.

ESIMERKKI:

lambda ayksi: ”Määritä ayksi'

Tässä lambda ottaa yhden syötteen, joka on ayksi.

kuinka luoda hälytys javascriptissä

Vastaavasti sinulla voi olla lambda ayksi,2,3..n.

Otetaan muutama esimerkki tämän osoittamiseksi:

ESIMERKKI 1:

a = lambda x: x * x tulosta (a (3))

LÄHTÖ: 9

ESIMERKKI 2:

a = lambda x, y: x * y painatus (a (3,7))

LÄHTÖ: kaksikymmentäyksi

Kuten näette, olen ottanut tässä kaksi esimerkkiä. Ensimmäisessä esimerkissä käytetään lambda-toimintoa vain yhdellä lausekkeella, kun taas toisessa esimerkissä on kaksi argumenttia. Huomaa, että molemmilla funktioilla on yksi lauseke ja argumentit. Siksi lambda-toimintoja ei voida käyttää siellä, missä tarvitset monirivisiä lausekkeita.

Toisaalta normaalit python-funktiot voivat viedä minkä tahansa määrän lauseita funktion määrittelyihin.

Kuinka nimettömät toiminnot pienentävät koodin kokoa?

Ennen kuin verrataan tarvittavan koodin määrää, kirjoitetaan ensin syntaksin ja vertaa sitä aikaisemmin kuvattuihin lambda-toimintoihin.

Kaikki normaalit toiminnot Pythonissa määritetään käyttämällä a def avainsana seuraavasti:

SYNTAKSI:

def funktion_nimi (parametrit):
lausunto (t)

Kuten näette, lambda-funktiolle vaadittavan koodin määrä on melko pieni kuin normaaleilla toiminnoilla.

Kirjoitetaan uudestaan ​​aiemmin ottamamme esimerkki normaalitoimintojen avulla.

ESIMERKKI:

miten aloittaa aws cli
def my_func (x): palauta x * x print (my_func (3))

LÄHTÖ: 9

Kuten näette, tarvitsemme yllä olevassa esimerkissä palautuslausekkeen my_func sisällä arvioidaksemme neliön 3 arvon. Sitä vastoin lambda-funktio ei käytä tätä palautuslauseketta, vaan nimettömän funktion runkoa kirjoitetaan samalla rivillä kuin itse funktio kaksoispistemerkin jälkeen. Siksi funktion koko on pienempi kuin my_func.

Edellä mainituissa esimerkeissä lambda-funktioita kutsutaan kuitenkin jollakin muulla a. Tämä tehdään, koska nämä toiminnot ovat nimettömiä ja vaativat siksi jonkin nimen kutsumista. Mutta tämä tosiasia saattaa tuntua hämmentävältä, miksi käyttää tällaisia ​​nimettömiä toimintoja, kun sinun on todella annettava jokin muu nimi soittaa heille? Ja tietysti, kun olen määrittänyt toiminnolle nimen a, se ei enää pysy nimettömänä! Eikö?

Se on oikeutettu kysymys, mutta asia on, että tämä ei ole oikea tapa käyttää näitä nimettömiä toimintoja.

Anonyymeja toimintoja voidaan parhaiten käyttää muissa korkeamman asteen toiminnot jotka joko käyttävät jotakin funktiota argumenttina tai palauttavat funktion lähtöön. Osoittaaksemme tämän, siirtykäämme nyt kohti seuraavaa aihettamme.

Python Lambda toimii käyttäjän määrittelemissä toiminnoissa:

Kuten edellä mainittiin, lambda-toimintoja käytetään muissa toiminnoissa hienoimman edun merkitsemiseksi.

Seuraava esimerkki koostuu new_funcista, joka on normaali python-funktio, joka vie yhden argumentin x. Tämä argumentti lisätään sitten tuntemattomaan argumenttiin y, joka toimitetaan lambda-funktion kautta.

ESIMERKKI:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) tulosta (t (3)) print (u (3))

LÄHTÖ:

6
5
Kuten näette, yllä olevassa esimerkissä new_func-funktiossa olevaa lambda-funktiota kutsutaan aina, kun käytämme new_func () -funktiota. Joka kerta voimme välittää argumenteille erilliset arvot.

Nyt kun olet oppinut käyttämään nimettömiä toimintoja korkeamman tason funktioissa, siirry nyt eteenpäin ymmärtämään yksi sen suosituimmista käyttötavoista, joka on suodatin (), kartta () ja vähennä () -menetelmissä.

Kuinka käyttää nimettömiä toimintoja suodattimessa (), kartassa () ja pienennä ():

Tuntemattomat toiminnot suodattaa():

suodattaa():

Suodatin () -menetelmää käytetään suodattamaan annetut iteraatiot (luettelot, sarjat jne.) Toisen funktion avulla, joka välitetään argumenttina, jotta kaikki elementit voidaan testata oikeiksi tai vääriksi.

Tämän toiminnon syntaksi on:

SYNTAKSI:

suodatin (toiminto, iteroitava)

Harkitse nyt seuraavaa esimerkkiä:

ESIMERKKI:

my_list = [2,3,4,5,6,7,8] new_list = list (suodatin (lambda a: (a / 3 == 2), my_list)) tulosta (new_list)

LÄHTÖ: [6]

Tässä my_list on luettelo toistettavista arvoista, joka välitetään suodatintoiminnolle. Tämä toiminto käyttää lambda-toimintoa tarkistaakseen, onko luettelossa arvoja, jotka vastaavat 2: ta jaettuna 3: lla. Tulos koostuu luettelosta, joka täyttää nimettömässä funktiossa olevan lausekkeen.

kartta():

Map () -funktio Pythonissa on toiminto, joka soveltaa tiettyä funktiota kaikkiin iterableihin ja palauttaa uuden luettelon.

muuntaa merkkijono päivämääräksi Java-muodossa

SYNTAKSI:

kartta (toiminto, iteroitava)

Otetaan esimerkki lambda-funktioiden käytöstä map () -funktiossa:

ESIMERKKI:

my_list = [2,3,4,5,6,7,8] new_list = list (kartta (lambda a: (a / 3! = 2), li)) tulosta (uusi_lista)

LÄHTÖ:

[True, True, True, True, False, True, True]

Yllä oleva tulos osoittaa, että aina kun iterointien arvo ei ole yhtä suuri kuin 2 jaettuna 3: lla, palautettavan tuloksen tulisi olla tosi. Siksi kaikkien my_list-elementtien arvo palauttaa arvon true paitsi arvoa 6, kun ehto muuttuu vääräksi.

vähentää():

Funktiota reduc () käytetään jonkin muun funktion käyttämiseen luetteloon elementteistä, jotka välitetään parametrina sille ja palauttaa lopuksi yhden arvon.

Tämän toiminnon syntaksi on seuraava:

SYNTAKSI:

vähentää (toiminto, sekvenssi)

ESIMERKKI:

functoolsista tuonti vähennä vähennystä (lambda a, b: a + b, [23,21,45,98])

Yllä oleva esimerkki on kuvattu seuraavassa kuvassa:

pelkistys-python lambda-edureka

LÄHTÖ: 187

Tulos osoittaa selvästi, että kaikki luettelon osat ovat lisätään jatkuvasti palauttaa lopputulos.

Tämän myötä olemme päässeet tämän ”Python Lambda” -artikkelin loppuun. Toivottavasti olet selvä kaikesta, mitä sinulle on jaettu. Varmista, että harjoittelet mahdollisimman paljon ja palauta kokemuksesi.

Onko sinulla kysymys meille? Mainitse se tämän “Python Lambda” -blogin kommenttiosassa, niin otamme sinuun yhteyttä mahdollisimman pian.

Saadaksesi syvällistä tietoa Pythonista sen eri sovellusten kanssa, voit ilmoittautua livenä 24/7 -tuella ja käyttöikä.