Python Lambda -funktiot
Python Lambda -funktiot ovat anonyymejä funktioita tarkoittaa, että funktiolla ei ole nimeä. Kuten jo tiedämme def avainsanaa käytetään normaalin funktion määrittämiseen Pythonissa. Samoin, lambda avainsanaa käytetään määrittämään anonyymi toiminto Python .
Python Lambda -funktion syntaksi
Syntaksi: lambda-argumentit: lauseke
- Tällä funktiolla voi olla mikä tahansa määrä argumentteja, mutta vain yksi lauseke, joka arvioidaan ja palautetaan.
- Lambda-funktioita voi käyttää vapaasti missä tahansa funktioobjekteja tarvitaan.
- Sinun on pidettävä tietosi siitä, että lambda-funktiot on syntaktisesti rajoitettu yhteen lausekkeeseen.
- Sillä on erilaisia käyttötarkoituksia tietyillä ohjelmoinnin aloilla muiden funktioiden lausekkeiden lisäksi.
Python Lambda -funktioesimerkki
Esimerkissä määritimme lambda-funktion( ylempi ) muuntaaksesi merkkijonon sen isoiksi kirjaimille käyttämällä ylempi () .
Tämä koodi määrittelee lambda-funktion nimeltä upper> joka ottaa argumentiksi merkkijonon ja muuntaa sen isoiksi käyttämällä upper()> menetelmä. Se soveltaa sitten tätä lambda-funktiota merkkijonoon 'techcodeview.com' ja tulostaa tuloksen
Python 3
str1> => 'techcodeview.com'> upper> => lambda> string: string.upper()> print> (upper(str1))> |
Lähtö:
GEEKSFORGEEKS
Lambda-funktion käyttö Pythonissa
Katsotaanpa joitain Python lambda -funktion käytännön käyttötapoja.
Kuntotarkistus Python lambda -toiminnolla
Tässä, 'format_numric' kutsuu lambda-funktiota, ja num välitetään parametrina toimintojen suorittamista varten.
Python 3
format_numeric> => lambda> num: f> '{num:e}'> if> isinstance> (num,> int> )> else> f> '{num:,.2f}'> print> (> 'Int formatting:'> , format_numeric(> 1000000> ))> print> (> 'float formatting:'> , format_numeric(> 999999.789541235> ))> |
Lähtö:
Int formatting: 1.000000e+06 float formatting: 999,999.79
Lambda-funktioiden ja määritellyn funktion välinen ero
Koodi määrittää kuutiofunktion käyttämällä molempia ' def'> avainsana ja lambda-funktio. Se laskee tietyn luvun (tässä tapauksessa 5) kuution molemmilla lähestymistavoilla ja tulostaa tulokset. Lähtö on 125 molemmille ' def'> ja lambda-funktiot, jotka osoittavat, että ne saavuttavat saman kuutiolaskelman.
Python 3
def> cube(y):> > return> y> *> y> *> y> lambda_cube> => lambda> y: y> *> y> *> y> print> (> 'Using function defined with `def` keyword, cube:'> , cube(> 5> ))> print> (> 'Using lambda function, cube:'> , lambda_cube(> 5> ))> |
Lähtö:
Using function defined with `def` keyword, cube: 125 Using lambda function, cube: 125
Kuten yllä olevassa esimerkissä näemme, molemmat kuutio() toiminto ja lambda_kuutio() toiminto käyttäytyy samalla tavalla ja tarkoitetulla tavalla. Analysoidaanpa hieman tarkemmin yllä olevaa esimerkkiä:
| Lambda-toiminnolla | Ilman lambda-toimintoa |
|---|---|
| Tukee joskus yksirivisiä lauseita, jotka palauttavat jonkin arvon. | Tukee mitä tahansa riviä toimintolohkon sisällä |
| Sopii lyhyiden toimintojen/tietojen käsittelyyn. | Sopii kaikkiin tapauksiin, joissa tarvitaan useita koodirivejä. |
| Lambda-funktion käyttö voi joskus heikentää koodin luettavuutta. | Voimme käyttää kommentteja ja toimintokuvauksia helppolukuisuuden vuoksi. |
Python lambda -funktion käytännön käytöt
Python Lambda -funktio luettelon ymmärtämisellä
Jokaisessa iteraatiossa sisällä listan ymmärtäminen , luomme uuden lambda-funktion oletusargumentilla x (jossa x on iteraation nykyinen kohde). Myöhemmin for-silmukan sisällä kutsumme samaa funktioobjektia, jolla on oletusargumentti käyttäen tuote() ja saada haluttu arvo. Täten, is_even_list tallentaa luettelon lambda-funktioobjekteista.
Python 3
is_even_list> => [> lambda> arg> => x: arg> *> 10> for> x> in> range> (> 1> ,> 5> )]> for> item> in> is_even_list:> > print> (item())> |
Lähtö:
10 20 30 40
Python Lambda -funktio if-elsen kanssa
Tässä käytämme Max lambda-funktiolla kahden kokonaisluvun enimmäismäärän löytämiseksi.
Python 3
Max> => lambda> a, b : a> if> (a>b)>> |