Par Lambda funkcijām
Lambda funkcijas pitonā ir nenosauktas un anonīmas funkcijas, kuras var izmantot, lai izveidotu izteicienus, kas atgriež kaut kādu vērtību, pamatojoties uz aprēķiniem, kas ieviesti pašā izteiksmē. Loģiku šajās lambda funkcijās var uzrakstīt kodolīgi, parasti kaut ko tādu, kas viegli ietilpst vienā rindā. Dažreiz tos var būt grūti lasīt, it īpaši, ja cilvēki nav labi pārzina Lambda funkcijas. Tomēr viņiem ir tas labums, ka koda blokos lietas tiek turētas kopā, un tās palīdz labāk izprast kontekstu.
Lambda funkciju sintakse
Funkcijas Lambda sintakse Python izskatās šādi:
reizināt = lambda x, y: x * yLambda izteiksmes pirmajā daļā, tieši pirms kolas (:) simbola, parametri tiek izmantoti kā argumenti. Otrajai daļai aiz resnās zarnas simbola jābūt atgriešanās vērtībai. Šī atgriešanās vērtība var būt izteiksme arī ar loģiku. Faktiski Lambda funkcijas tiek izmantotas gandrīz visu laiku, lai ieviestu kādu loģiku piegādātajos argumentos un pēc tam atgrieztu galīgo rezultātu.
Lai pārbaudītu iepriekš norādīto Lambda funkciju, varat izmantot šādu paziņojumu:
drukāt (reizināt (3, 4))Jums vajadzētu iegūt šādu izvadi:
12To pašu lambda funkciju citādi rakstītu šādi:
def reizināt (x, y):atgriezties x * y
drukāt (reizināt (3, 4))
Abi kodu paraugi sniegs vienādu izvadi. Tālāk ir paskaidroti vēl daži Lambda funkciju piemēri.
Pass Lambda funkcijas kā argumenti
Varat izmantot Lambda funkcijas, lai veiktu aprēķinus un atgriezto vērtību kā argumentus piegādātu citām funkcijām. Kārtošanas metodei Python ir nepieciešams arguments “atslēga”, kurā varat norādīt izsaucamo funkciju, kas kārtošanas vajadzībām aizņem vienu argumentu. Tā vietā, lai vispirms definētu atsevišķu funkciju, kas atgriež atslēgu, un pēc tam sniegtu funkcijas atsauci uz argumentu, jūs varat vienkārši izmantot funkciju Lambda.
augļi = [(2, 'āboli'), (4, 'apelsīni'), (3, 'banāni')]augļi.kārtot (atslēga = lambda elements: elements [0])
druka (augļi)
Iepriekš minētais kods radīs šādu izvadi:
[(2, 'āboli'), (3, 'banāni'), (4, 'apelsīni')]Jūs varat izmantot lambda jebkurā citā metodē, kas kā izsaucamo funkciju izmanto izsaucamo funkciju (piemēram, filtrēšanas metode).
Izmantojiet Lambda funkcijas saraksta izpratnē
Sarakstu izpratnē varat izmantot Lambda, un saraksts tiks pareizi izveidots no Lambda izteiksmes atgrieztajām vērtībām.
get_square = lambda a: a * akvadrāti = [get_square (x) x diapazonā (5)]
druka (kvadrāti)
Tādējādi tiks iegūta šāda izeja:
[0, 1, 4, 9, 16]Iepriekš minēto koda paraugu var uzrakstīt arī šādā veidā, kur “x” tiek piegādāts lambda funkcijai kā arguments:
kvadrāti = [(lambda x: x * x) (x) x diapazonā (5)]druka (kvadrāti)
Šis piemērs tikai ilustrē Lambda funkciju izmantošanu saraksta izpratnē. Pretējā gadījumā jūs varat viegli aprēķināt kvadrātus, izmantojot minimālu saraksta izpratnes paziņojumu:
drukāt ([x * x x diapazonā (5)])Izmantojiet Lambda funkcijas Python vārdnīcās
Tālāk redzamais kodu paraugs ilustrē Lambda funkcijas, kas tiek izmantotas atslēgas vērtību pāros Python vārdnīcā. Pēc definēšanas šīs funkcijas var izsaukt jebkurā laikā.
aprēķināt = 'summa': lambda a, b: a + b, 'starpība': lambda a, b: a - bizdrukāt (aprēķināt ['summa'] (4, 5))
izdrukāt (aprēķināt ['starpību'] (4, 5))
Pēc iepriekš minētā koda izpildīšanas jums vajadzētu iegūt šādu izvadi:
9-1
Secinājums
Lambda funkcijas nodrošina lielisku veidu, kā rakstīt stenogrammas un saglabāt lietas kārtīgas un sakārtotas, nevajadzīgi neradot daudz nosaukto funkciju. Tomēr pārmērīga Lambda funkciju izmantošana var padarīt kodu grūti lasāmu, jo īpaši, ja kodu skatās vairāk nekā viena persona. Labāk, ja jums ir lasāmāks kods (pat ja tas ir daudzbalsīgs), nekā tas, kas atkārtoti var būt mazliet grūti saprotams.