Python

Kako uporabljati Lambda funkcije v Pythonu

Kako uporabljati Lambda funkcije v Pythonu
Ta članek bo razložil, kako uporabljati Lambda funkcije v Pythonu. Lambda funkcije lahko uporabljamo za pisanje jedrnatih enojnih linij, izvajanje logike in hitro pridobivanje povratnih vrednosti, ki se lahko podajo v druge izraze.

O Lambda funkcijah

Lambda funkcije v pythonu so neimenovane in anonimne funkcije, ki jih lahko uporabimo za ustvarjanje izrazov, ki vrnejo nekakšno vrednost na podlagi izračunov, izvedenih v samem izrazu. Logiko v teh lambda funkcijah lahko napišemo na kratko, običajno nekaj, kar se zlahka prilega v eno vrstico. Včasih jih je težko brati, še posebej, če ljudje slabo poznajo Lambda funkcije. Vendar imajo prednost, da stvari držijo znotraj blokov kode, in pomagajo bolje razumeti kontekst.

Sintaksa Lambda funkcij

Sintaksa funkcije Lambda v Pythonu je videti tako:

pomnožimo = lambda x, y: x * y

Prvi del lambda izraza, tik pred dvopičjem (:), vzame parametre kot argumente. Drugi del, za simbolom dvopičja, mora biti vrnjena vrednost. Ta vrnjena vrednost je lahko tudi izraz z logiko. Dejansko se funkcije Lambda skoraj ves čas uporabljajo za izvajanje neke logike na podanih argumentih in nato vrnejo končni rezultat.

Za preizkus zgoraj navedene funkcije Lambda lahko uporabite naslednjo izjavo:

natisni (pomnoži (3, 4))

Dobili bi naslednji izhod:

12

Enako lambda funkcijo bi sicer zapisali na naslednji način:

def pomnoži (x, y):
vrnitev x * y
natisni (pomnoži (3, 4))

Oba vzorca kode bosta dala enak izhod. V nadaljevanju je pojasnjenih še nekaj primerov Lambda funkcij.

Lambda funkcije podajte kot argumente

Funkcije Lambda lahko uporabljate za izračune in vrnitev vrednosti kot argumente drugim funkcijam. Metoda razvrščanja v Pythonu zavzame argument »ključ«, kjer lahko določite funkcijo, ki jo je mogoče klicati in za namene razvrščanja sprejme en argument. Namesto da najprej definirate ločeno funkcijo, ki vrne ključ, nato pa navedete referenco funkcije na argument, lahko preprosto uporabite funkcijo Lambda.

sadje = [(2, 'jabolka'), (4, 'pomaranče'), (3, 'banane')]
sadje.razvrsti (ključ = lambda element: element [0])
tisk (sadje)

Zgornja koda bo dala naslednje rezultate:

[(2, „jabolka“), (3, „banane“), (4, „pomaranče“)]

Lambdo lahko uporabite v kateri koli taki metodi, ki kot argument vzame funkcijo, ki jo je mogoče klicati (na primer metoda filtra).

Uporabite Lambda funkcije v seznamih

Lambdo lahko uporabite pri razumevanju seznama in seznam bo pravilno ustvarjen iz vrednosti, ki jih vrne izraz Lambda.

get_square = lambda a: a * a
kvadratki = [get_square (x) za x v območju (5)]
tisk (kvadrati)

To bo prineslo naslednje rezultate:

[0, 1, 4, 9, 16]

Zgornji vzorec kode lahko zapišemo tudi na naslednji način, kjer je kot argument lambda funkciji dobavljen "x":

kvadrati = [(lambda x: x * x) (x) za x v območju (5)]
tisk (kvadrati)

Ta primer samo ponazarja uporabo Lambda funkcij pri razumevanju seznama. Drugače lahko enostavno izračunate kvadratke z uporabo minimalne izjave o razumevanju seznama:

tiskanje ([x * x za x v območju (5)])

Uporabite Lambda funkcije v slovarjih Python

Spodnji vzorec kode prikazuje funkcije Lambda, ki se uporabljajo v parih ključ-vrednost v slovarju Python. Ko so določene, lahko te funkcije kadar koli pokličete.

izračunaj = 'vsota': lambda a, b: a + b, 'razlika': lambda a, b: a - b
natisni (izračunaj ['vsota'] (4, 5))
natisni (izračunaj ['razlika'] (4, 5))

Po zagonu zgornje kode bi morali dobiti naslednji izhod:

9
-1

Zaključek

Lambda funkcije zagotavljajo odličen način za pisanje stenografskih izrazov in ohranjajo stvari urejene in organizirane, ne da bi pri tem nepotrebno ustvarili veliko imenovanih funkcij. Vendar lahko pretirana uporaba Lambda funkcij oteži branje kode, zlasti kadar si kodo ogleduje več kot ena oseba. Bolje je imeti bolj berljivo kodo (tudi če je podrobna) kot pa nekaj, kar je ob ponovnih obiskih morda nekoliko težko razumeti.

Namestite najnovejšo strategijo igre OpenRA v Ubuntu Linux
OpenRA je Libre / Free Real Time strateški stroj, ki poustvarja zgodnje igre Westwood, kot je klasična Command & Conquer: Red Alert. Porazdeljeni modi...
Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...