Lambda funktsioonide kohta
Pythoni lambda funktsioonid on nimetud ja anonüümsed funktsioonid, mida saab kasutada avaldiste loomiseks, mis annavad mingisuguse väärtuse, tuginedes avaldises endas rakendatud arvutustele. Nendes lambda funktsioonides saab loogikat kirjutada lühidalt, tavaliselt midagi, mis sobib lihtsalt ühte ritta. Mõnikord võib neid olla raske lugeda, eriti kui inimesed pole Lambda funktsioonidega hästi kursis. Kuid nende eeliseks on asjade kooshoidmine koodiplokkides ja nad aitavad paremini konteksti mõista.
Lambda funktsioonide süntaks
Funktsiooni Lambda süntaks Pythonis näeb välja selline:
korrutada = lambda x, y: x * yLambda avaldise esimene osa, vahetult enne koolonit (:) sümbolit, võtab argumentidena parameetrid. Koolonimärgi järel olev teine osa peab olema tagastusväärtus. See tagastusväärtus võib olla ka loogikaga väljend. Tegelikult kasutatakse Lambda funktsioone peaaegu kogu aeg, et juurutada tarnitud argumentidel mõni loogika ja seejärel tagastada lõpptulemus.
Eespool nimetatud Lambda funktsiooni testimiseks võite kasutada järgmist lauset:
print (korrutama (3, 4))Peaksite saama järgmise väljundi:
12Sama lambda funktsioon kirjutatakse muul viisil järgmiselt:
def korrutada (x, y):tagastage x * y
print (korrutama (3, 4))
Mõlemad koodinäidised annavad sama väljundi. Allpool on selgitatud veel mõned näited Lambda funktsioonidest.
Lambda funktsioonide edastamine argumentidena
Lambda funktsioone saate kasutada arvutuste tegemiseks ja tagastusväärtuse argumentide edastamiseks teistele funktsioonidele. Sortimismeetod Pythonis võtab "võtme" argumendi, kus saate määrata kutsuva funktsiooni, mis võtab sortimiseks ühe argumendi. Selle asemel, et kõigepealt määratleda eraldi funktsioon, mis tagastab võtme, ja seejärel sisestada funktsiooni viide argumendile, võite lihtsalt kasutada funktsiooni Lambda.
puuviljad = [(2, "õunad"), (4, "apelsinid"), (3, "banaanid")]puuviljad.sort (võti = lambda element: element [0])
trükk (puuviljad)
Ülaltoodud kood annab järgmise väljundi:
[(2, "õunad"), (3, "banaanid"), (4, "apelsinid")]Võite kasutada lambdat mis tahes sellises meetodis, mis võtab argumendina väljakutsuva funktsiooni (näiteks filtreerimismeetod).
Lambda funktsioonide kasutamine loendi mõistetes
Lambdat saate kasutada loendi mõistmisel ja Lambda avaldise tagastatud väärtustest luuakse nõuetekohaselt loend.
get_square = lambda a: a * aruudud = [saada x ruutu (x) x vahemikus (5)]
print (ruudud)
See annab järgmise väljundi:
[0, 1, 4, 9, 16]Eespool toodud koodinäidise saab kirjutada ka järgmiselt, kus lambda funktsioonile argumendina antakse „x”:
ruudud = [(lambda x: x * x) (x) x vahemikus (5)]print (ruudud)
See näide illustreerib lihtsalt Lambda funktsioonide kasutamist loendi mõistmisel. Muul viisil saate ruudud hõlpsalt arvutada, kasutades minimaalset loendi mõistmise lauset:
print ([x * x x vahemikus (5)])Kasutage Pythoni sõnastikes Lambda funktsioone
Allpool olev koodinäide illustreerib Lambda funktsioone, mida kasutatakse Pythoni sõnaraamatu võtmeväärtuste paarides. Kui see on määratletud, saate neid funktsioone igal ajal kutsuda.
arvuta = 'summa': lambda a, b: a + b, 'erinevus': lambda a, b: a - bprint (arvuta ['summa'] (4, 5))
print (arvuta ['vahe'] (4, 5))
Pärast ülaltoodud koodi käivitamist peaksite saama järgmise väljundi:
9-1
Järeldus
Lambda funktsioonid pakuvad suurepärast võimalust kirjutada lühikesi väljendeid ja hoida asju korralikult ja korrastatult, ilma et oleks vaja luua palju nimetatud funktsioone. Lambda funktsioonide ületarbimine võib aga muuta koodi raskesti loetavaks, eriti kui koodi vaatab rohkem kui üks inimene. Parem on, kui teil on loetavam kood (isegi kui see on verboosne) kui see, millel on midagi, mida võib korduvkülastuste ajal natuke raskesti mõista.